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

the*_*ich 3 android android-activity

我一直在通过运行一个占用内存的应用程序来测试程序的行为,该应用程序会强制我的应用程序被杀死.在阅读了WhereSaveInstanceState捆绑的Where的答案后,我对我看到的一些结果感到困惑.

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

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

Com*_*are 6

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

这是不正确的,尽管我自己很长一段时间都对这一点感到困惑.

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

但是,如果是这样的话,那么当我恢复我的应用程序时,如果该进程被杀死了什么呢?

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

是否真的保证永远不会被写入磁盘?

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

  • 虽然第一个答案没有明确说明个别活动被杀死,但它确实说捆绑包"在收集内存时会随应用程序一起被销毁".由于进程(以及扩展名,应用程序)被销毁,但捆绑显然不是,我认为它的说法是假的? (2认同)
  • @MasterNES:是的,我同意引用的陈述是错误的. (2认同)