正如开发指南中所说,活动可以在“应用程序进程被终止”和“用户导航到活动”之后恢复。首先,我从来没有见过这样的事情发生。当它的进程被杀死时,我似乎无法“导航回”到一个 Activity,在进程消失后,Activity 只是从堆栈中消失了。
如果发生这样的事情,它究竟会如何发生?
我看到一个奇怪但好的事情是:有一个Activity A1
启动Activity A2
另一个应用程序。现在A2
是前台活动。当内存变低时,至少在模拟器上(我可以很容易地吃掉内存),A2
将被杀死而不是A1
.
例如,我担心的是这样的事情:我的应用程序在堆栈上有两个活动,我们称它们为A0
and A1
。并且A1
,再次推出Activity A2
了另一个应用程序。当A0
即将启动A1
时,它给出A1
了一个数据对象的引用D
。现在,如果在 A2 处于前台时杀死A0
and的进程,也会丢失。当A2完成后,似乎至少需要恢复。因此将不得不处理. 更重要的是,A1 必须找到一种方法来告诉仍然死去的人对 restore 的引用。这很复杂还是我走错了路?A1
D
A1
A1
D
A0
D