android进程被杀后如何“恢复”?

时间:2012-06-03 11:23:09

标签: android android-lifecycle

正如在开发指南中所述,在“应用程序进程被杀死”和“用户导航到活动”之后,活动可以恢复。首先,我从未见过这样的事情发生过。当它的进程被杀死时,我似乎不能“导航回”一个Activity,在进程消失后,Activity就会从堆栈中消失。

如果发生这种情况,究竟会发生什么?

我看到一个奇怪但好的事情是: 有一个Activity A1启动另一个应用的Activity A2。现在A2是前台活动。当内存变低时,至少在模拟器上(我可以很容易地占用RAM),A2将被杀死,而不是A1

我担心的是这样的事情: 我的应用在堆栈上有两个活动,我们称之为A0A1。并且A1再次启动了另一个应用的Activity A2。当A0即将启动A1时,它会为A1提供对数据对象D的引用。现在,如果在{A2}处于前台时A0A1的处理被杀死,D也会丢失。当A2完成后,似乎至少需要恢复A1。因此A1必须处理D的恢复。更重要的是,A1必须找到一种方法来告诉尚未死亡的A0对已恢复的D的引用。这是复杂的还是我走错了路?

1 个答案:

答案 0 :(得分:7)

系统将尽一切可能使前台应用程序保持活跃状态​​。

当进程即将被终止时,系统会保存用于启动活动的Intent

这样,一旦用户返回已被杀死的应用程序,则应用程序将被恢复,并且会触发相同的Intent以启动活动,包括它可能具有的所有额外内容。

这意味着您传递到Intent以启动活动的任何数据在活动恢复时仍然存在。

您可能不会注意到它,但Android会在日常使用中杀死并重新创建进程,这就是平台提供的无缝多任务处理的重点。

您应该始终使用“开发”设置中的“请勿保留活动”选项测试您的应用。