当android系统删除现有的活动实例时

时间:2014-07-13 18:32:53

标签: android

我是android系统及其相关内容的新手,我想知道android何时删除现有的活动实例及其相关的包和数据。还有那些实例存储在android系统中的地方?

修改 让我们说我开始一项活动,然后返回主屏幕,而不是停止活动数小时。 android会保留所有这些现有实例以及删除它们的时间有多长?

1 个答案:

答案 0 :(得分:1)

Android维护着一个用于存储活动的堆栈系统。

A -> B -> C

如果系统受限并且已确定需要释放一些资源,则在按下主页按钮时可能会破坏您的活动。仅当Android终止进程时才会发生这种情况。 Android不会破坏个人活动以应对内存压力。文档说明如果出现onDestroy(),则可以调用它:

  

这可能是因为活动正在完成(有人称为finish(),或者因为系统暂时销毁此活动实例以节省空间。您可以使用isFinishing()方法区分这两种情况

你无法确定它何时会被销毁,它是由系统在需要内存时决定的,所以它只会杀死你的应用程序。就像GC调用一样,你永远无法确定它何时被调用,它是由JVM控制的,同样这是由内核控制的。

注意:系统可以在调用onDestroy()后调用onStop()而终止您的程序。因此,任何清理/数据持久性代码都应该在onPause()onStop()中。