我的应用程序中有 Activity (A、B、C)。当我启动应用程序时 Activity A:
A:onCreate()
A:onStart()
A:onResume()
我正在使用 Intent 调用第二个 Activity (A -> B):
A:onPause()
B:onCreate()
B:onStart()
B:onResume()
A:onStop()
然后我点击“主页”按钮所以应用程序进入后台:现在
B:onPause()
B:onStop()
1 或 2 小时后,我再次进入我设备的主页并单击它运行的应用程序图标:
B:onDestroy()
A:onRestart()
A:onStart()
A:onResume()
但我需要去哪一个 Activity 我就这样退出了,
B:onRestart()
B:onStart()
B:onResume()
我读过一些文章,它说 Activity 因为不再可见而被系统杀死。有没有可能解决我的问题...
提前致谢...
最佳答案
你可能会混淆两个不同的东西:
如果 Android 需要内存,它不会终止 Activity 。它所做的是终止 Activity 正在运行的整个进程。一般来说,这意味着 Android 会终止您在这种情况下的所有 Activity 。但是,它会记住 Activity 堆栈,当用户返回应用程序时,Android 将创建一个新进程,然后重新创建每个 Activity (根据需要依次创建)。它首先重新创建 Activity 堆栈顶部的 Activity (即:用户离开应用程序的位置)。
Android 假定如果用户长时间离开任务(我认为这大约是 30 分钟),那么他就不再对该任务感兴趣,并且有记住用户在该任务的 Activity 堆栈中的位置是没有意义的,因为他可能不再关心了。在这种情况下,发生的情况是,当用户返回任务(或重新启动该任务中 Activity 堆栈顶部的应用程序)时,Android 只是将任务清除回根 Activity .这具有应用程序看起来重新开始的效果。这是期望的(记录在案的行为)。
您想要做的是阻止 Android 清除情景 #2 中的任务。你通过添加来做到这一点
android:alwaysRetainTaskState="true"
到<activity>
根 Activity 的标签(即:启动您的应用程序的 Activity ,带有 ACTION_MAIN
和 CATEGORY_LAUNCHER
的 Activity )。
关于android - 如果在 Android 中不再可见,则 Activity 被系统杀死的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11665483/