如何模拟Android OS卸载后台应用程序?

出于测试目的,当Android系统决定保存状态并终止后台应用程序时,我需要轻松地重现这种情况,其方式与通常用于内存优化的方式相同。 实际上,当用户切换回它时,我还需要测试这种被删除过程的恢复过程。

直截了当的方法是打开应用程序,然后打开更多其他任务,尝试尽可能多地分配资源。 这太复杂,不可靠。

我在SO上发现了这个问题 ,但答案意味着简单地杀死进程,这似乎不等同,因为当用户决定切换回时,似乎没有办法进一步自动恢复已保存状态的被杀死进程。应用程序。 如果我理解正确,那么在明确杀死应用程序之后,如果启动,将从一开始就运行,而不是从已保存状态运行。 如果我错了,请纠正我。

根据Android文档,我需要的是由ActivityManager.killBackgroundProcesses(packageName) ,但这是执行该操作的编程方式。 是否有一个实用程序已经从UI提供相同的选项?

如果我理解正确,那么在明确杀死应用程序之后,如果启动,将从一开始就运行,而不是从已保存状态运行。

这取决于应用程序的启动方式。 如果你的意思是发射器图标,是的。 但是,用户可以通过BACK按钮或最近的任务列表返回给您,具体取决于具体情况,这些会将用户返回到他们离开的位置,而不是“非常开始”。

是否有一个实用程序已经从UI提供相同的选项?

在Android 4.0+设备上,将您的应用程序置于后台,打开最近的任务列表(长按HOME或按下专用的RECENTS可用性),然后向右滑动您的应用程序。 这似乎基本上调用该包名称上的killBackgroundProcesses()

我没有在模拟器中尝试过这个,但它可能做同样的事情。