如何在 Android 上测试 "App Process Killed" 路由?

How do I test the "App Process Killed" route on Android?

在 Android 应用程序 activity 生命周期的流程图中(如下所示)有一条路线 'App process' 被终止并且 onDestroy() 未被调用.这似乎是为不同的 activity.

释放内存资源最常见的做法。

一切都很好,但我该如何测试这个场景?在设备上或模拟器中。

步骤:

  1. 导航到您的应用程序
  2. 按主页按钮,这样应用就不会收到 onDestroy 调用
  3. 转到系统设置并找到 "force close" 您的应用的正确位置
  4. 导航回您的应用程序

重要提示:当您要进入系统设置时离开您的应用程序时不要使用后退按钮,而是使用主页按钮,这样应用程序就不会被杀死。

测试这些生命周期的最简单、最干净的解决方案是在您设备的开发人员设置中启用 "Don't Keep Activities" 设置。

这样,您甚至可以在开始新的 activity 时立即杀死您的 activity。因此,如果您按回键,旧的 activity 将被重新创建。

如果您强行停止您的应用程序,所有 BroadcastReceivers 以及扩展 BroadcastReceiver 的应用程序小部件都将停止工作。另请参阅 Commonswarethis SO post

因此,强制停止应用程序对于在低内存条件下测试应用程序行为并不理想。你还能做什么?

  • 一种选择:编写您自己的任务杀手级应用并使用 ActivityManager.killBackgroundProcesses()。正如 documentation 所说:

This is the same as the kernel killing those processes to reclaim memory

  • 另一种选择:按照 Xavi Gil 在他对 Simulate low battery & low memory in Android
  • 的回答中所解释的操作设备设置