正如我刚刚了解到的,Android保留随时终止后台应用程序进程以回收RAM的权利。应用程序仍在运行,但可以恢复,但我的所有静态变量都不见了(请参阅本文)。
我想在这种情况下模拟我的应用程序的行为。做这件事最简单的方法是什么?肯定有一种比编写一些额外的分配大量内存的应用程序更容易、更可预测的方法。
发现两个类似的问题模拟模拟器中的活动扼杀和模拟低电池&安卓系统内存不足。
这些问题的解决方案:
- 使用
adb shell
然后使用kill
从ps
到PID
的过程 - 使用DDMS杀死它
简短回答:如果使用模拟器,请更改方向。如果使用实际设备,请转到设置-->开发人员选项-->不保留活动来更改设置。
有关详细解释,请参阅我对此的回答。
要终止后台进程(但仍然通过历史重新启动),只需在模拟器或设备上使用活动管理器shell命令:
$ adb shell am kill com.my.package
另一种方法是为包构建一个调用killBackgroundProcesses()的超基础应用程序,因为这种方法"与内核杀死这些进程以回收内存相同;系统将在未来根据需要重新启动这些进程。"