android - 将 Activity 放在首位 - 我正在丢失数据

标签 android android-activity android-intent

当我收到一条消息时,我需要将 Activity 置于最前面。我使用以下代码:

public void BringToFront()
{
    Intent intent = new Intent();
    intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
    intent.setClass(getApplicationContext(), getClass());
    startActivity(intent);
}

当我将 Activity 置于顶部时,即使该 Activity 未被操作系统终止,之前的数据也会丢失。有没有办法在不丢失数据的情况下恢复 Activity ,或者我仍然需要恢复数据?

谢谢

最佳答案

您的代码无效。您的 Activity 只有在前面时才处于 Activity 状态。如果它不在前面,它就无法处理,因此您的方法将永远不会被调用。 Activity 应该始终保存它想要保留的数据,无论是在 onSaveInstanceState 中还是在数据更改时。有很多方法可以在 Activity 之间保存数据。 如果你想让你的 Activity 在前面,你必须关闭所有在它上面的 Activity 。如果你再次需要这些 Activity ,你应该让他们保存他们的数据,然后用新数据重新开始。

我建议您阅读有关 Activity 如何工作的文档....

关于android - 将 Activity 放在首位 - 我正在丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11009946/

相关文章:

android - 无法关闭转换

android - AQuery 不会在 Android Studio 中加载图像

java - 如何创建一项具有变化数据的 Activity ?

Android 布局权重不适用于相对布局

android - Google 的 Android Duo 应用程序支持哪些 Intent 或 API?

java - 将图像放在图像上

android - 构建android项目产生make error 2

安卓 : change the position of alert dialog icon

android - 在不使用 AsyncTask 的情况下避免 Activity 之间出现黑屏

android - 延长 Google Glass 中的视频录制时间