一旦我的申请程序被杀,什么才能保持我的活动状态?

时间:2012-09-18 00:04:09

标签: android android-activity

我一直在通过运行一个占用内存的应用程序来测试程序的行为,该应用程序会强制我的应用程序被杀死。在阅读Where is the bundle of onSaveInstanceState saved?的答案后,我对我看到的一些结果感到困惑。

该链接中给出的两个答案都表明,当需要回收内存时,会破坏单个活动,而不是应用程序。但根据http://developer.android.com/guide/components/processes-and-threads.html,过程 - 而不是个别活动 - 被杀死。由于所有组件通常都在同一个进程中运行,我希望整个应用程序在低内存情况下被杀死。我的测试与Android文档一致,因为当我运行内存吃app时,我不再看到进程正在运行。

因此,如果整个过程被杀死,我是否认为该问题中给出的答案不正确?但是,如果是这样的话,那么当我恢复我的应用程序时,如果该进程被杀死了什么呢?是否真的保证永远不会写入磁盘?

2 个答案:

答案 0 :(得分:6)

  

该链接中给出的两个答案都表明,当需要回收内存时,个别活动而非应用程序将被销毁。

这是不正确的,虽然我自己很长一段时间都对这一点感到困惑。

恕我直言,在这个问题的三个答案中,至多有一个“暗示个人活动,而不是应用程序,在需要回收内存时会被破坏”。

  

但是如果是这样的话,那么当我恢复申请时,如果这个过程被杀了,我的Bundle会保持什么?

有时,没有什么是“保持[你的]捆绑”。其他时候,操作系统的核心流程是“保持[你的]捆绑”。

  

真的保证永远不会写入磁盘吗?

不能“保证”,因为没有记录它是否写入磁盘。如果 写入磁盘,它将由OS进程(不是你的进程)完成,并且该文件应该是其他进程无法读取的。

答案 1 :(得分:0)