2011-08-18 91 views
2

我只是做了一个小测试:我开始了我的应用程序,进入某个屏幕,按下home键并通过Advanced Task Killer杀死了这个进程。Android会保存一个被杀活动的状态多久?

现在,如果我在几分钟后回到我的应用程序,我会回到那个屏幕。我也知道onRestoreInstanceState()在这种情况下被调用,因为我已经玩了很多这种方法。然而,出于好奇,我做了同样的事情,但让我的手机躺了一段时间(一个小时或一些东西)。当我重新启动我的应用程序时,它直接进入主要活动。

所以我的问题是:Android保持保存状态多久?或者是什么决定它是否抛弃它?我已经知道它与锁屏开/关无关。

亲切的问候, 水母

回答

2

该活动已恢复,因为高级任务杀手等应用程序使用“非法”方法来杀死应用程序。 Android杀死应用程序的方式与内存不足时一样,当应用程序再次启动时,它的状态将恢复。

Android保持一段时间的应用程序状态。通常约15-30分钟,但我认为这取决于设备。但是您可以让Android使用android:alwaysRetainTaskState="true"属性“永远”保持活动状态(直到活动结束)。

+0

无论如何,高级任务杀手对于测试都非常方便。感谢您的回答! :) – jellyfish

+1

不客气!我曾经使用高级任务杀手,但现在我更喜欢GO桌面EX。它有很多不错的功能,也可以杀死应用程序。 – Michael

0

当您使用高级任务杀手杀死一个应用程序,例如,在下次重新启动应用程序与主要活动。我想应用程序会保存文件中的状态以恢复相同的活动,即使它被杀死!

+0

是的,当然是的。这就是onSaveInstanceState和onRestoreInstanceState所用的方法。但它永远不会保存这个状态,所以我的问题是:多久? – jellyfish

0

当它需要活动持有的资源(通常是内存)并且活动不在前台时,Android会处置活动。有更多的标准涉及,但这是一般情况。没有预定义的时间限制或标准,而不是“什么时候决定它需要”。该应用可能会立即死亡,或者可能无限期地熬夜。你永远不应该认为你的应用会被杀死,你永远不应该认为你的应用永远不会被杀死。

+0

谢谢,但我不问Android何时杀死一个应用程序,我要求Android在应用程序被杀后保存状态多久。 :) – jellyfish