我正在尝试对我的应用程序进行防弹,以便如果它的内存已经被Android操作系统回收,因为内存不足或在使用时再次拉到前台,我可以确保它不会崩溃。
我已经通过持久化数据处理了应用程序被杀死并重新启动的问题,但我希望能够从后台恢复,如果内存已被回收且应用程序仍在运行,则从活动开始最后一次进入。
要做到这一点,我希望能够在设备上强制出现这种情况(并且应用程序仍在运行)。我已经看到了用于模拟[How do you simulate low memory in the Android emulator?的SO项目,通过杀死每个活动https://stackoverflow.com/a/10799988/4107331[1]但我希望在设备上有真正的交易。
所以基本上我想将我的应用程序推到后台,强制将其内存回收,将其拉到前台,以便我可以验证它是否正确恢复 - 所有这些都在设备上。简单,对吧?
答案 0 :(得分:2)
使用"不要保持活动"来自设置中的开发者选项。
答案 1 :(得分:1)
我使用一个名为“ Fill Ram Memory”(https://play.google.com/store/apps/details?id=me.empirical.android.application.fillmemory&hl=en_GB)的应用程序来实现此目的。它确实做到了如上所说,操作系统的副产品将被迫杀死非关键进程(即您的应用程序)。
请注意,操作系统将尝试尽可能长时间地保持前台进程运行,因此,如果您的应用程序正在运行前台服务,则被杀死的可能性较小。我也建议您从一开始就寻找总内存量较小的设备,因为这样会使处理过程更快。