gpt4 book ai didi

android - 如果在 Android 中不再可见,则 Activity 被系统杀死的问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:22:24 28 4
gpt4 key购买 nike

我的应用程序中有 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 因为不再可见而被系统杀死。有没有可能解决我的问题...

提前致谢...

最佳答案

你可能会混淆两个不同的东西:

  1. 如果 Android 需要内存,它不会终止 Activity 。它所做的是终止 Activity 正在运行的整个进程。一般来说,这意味着 Android 会终止您在这种情况下的所有 Activity 。但是,它会记住 Activity 堆栈,当用户返回应用程序时,Android 将创建一个新进程,然后重新创建每个 Activity (根据需要依次创建)。它首先重新创建 Activity 堆栈顶部的 Activity (即:用户离开应用程序的位置)。

  2. Android 假定如果用户长时间离开任务(我认为这大约是 30 分钟),那么他就不再对该任务感兴趣,并且有记住用户在该任务的 Activity 堆栈中的位置是没有意义的,因为他可能不再关心了。在这种情况下,发生的情况是,当用户返回任务(或重新启动该任务中 Activity 堆栈顶部的应用程序)时,Android 只是将任务清除回根 Activity .这具有应用程序看起来重新开始的效果。这是期望的(记录在案的行为)。

您想要做的是阻止 Android 清除情景 #2 中的任务。你通过添加来做到这一点

    android:alwaysRetainTaskState="true"

<activity> 根 Activity 的标签(即:启动您的应用程序的 Activity ,带有 ACTION_MAINCATEGORY_LAUNCHER 的 Activity )。

关于android - 如果在 Android 中不再可见,则 Activity 被系统杀死的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11665483/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com