我正在学习Android应用开发。我正在阅读系统如何管理活动。
阅读this文档。这是混乱。
根据文档系统,只推送活动(No 重新排序,这对堆栈有意义)但是,它表明系统可以在没有足够内存可用的情况下回收内存。 并选择要删除系统的活动总是选择背景中的活动。所以说吧 删除活动A3。但A3位于堆栈的底部。如果没有重新排序应用A的堆栈,它如何删除A3?
我希望我的问题清楚
谢谢,
答案 0 :(得分:1)
从内存中删除活动时,不会更改后台堆栈。
但是,当用户点击后退按钮并返回到已回收的活动时,那么您没有专门保存在onSaveInstanceState()
中的任何状态(并从savedInstanceBundle
参数重新加载onCreate()
)将会丢失。
答案 1 :(得分:0)
Android系统没有正确指出重新排序堆栈。它遵循Process Lifecycle,其中包含活动的进程终止,而不是堆栈上的单个活动。请记住,默认情况下,每个应用程序都是一个单独的进程,其中维护活动堆栈。因此,应用A和应用B的活动堆栈将是独立且独立的。
例如,任务A在后台有A1,A2和A3活动。任务A是一个过程。当android需要回收内存时,它将终止进程任务A,其中包含所有活动A1,A2,A3。因此,目前任务A中哪个活动位于堆栈顶部并不重要。