如何在 Android 上测试 "App Process Killed" 路由?
How do I test the "App Process Killed" route on Android?
在 Android 应用程序 activity 生命周期的流程图中(如下所示)有一条路线 'App process' 被终止并且 onDestroy()
未被调用.这似乎是为不同的 activity.
释放内存资源最常见的做法。
一切都很好,但我该如何测试这个场景?在设备上或模拟器中。
步骤:
- 导航到您的应用程序
- 按主页按钮,这样应用就不会收到 onDestroy 调用
- 转到系统设置并找到 "force close" 您的应用的正确位置
- 导航回您的应用程序
重要提示:当您要进入系统设置时离开您的应用程序时不要使用后退按钮,而是使用主页按钮,这样应用程序就不会被杀死。
测试这些生命周期的最简单、最干净的解决方案是在您设备的开发人员设置中启用 "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
的回答中所解释的操作设备设置
在 Android 应用程序 activity 生命周期的流程图中(如下所示)有一条路线 'App process' 被终止并且 onDestroy()
未被调用.这似乎是为不同的 activity.
一切都很好,但我该如何测试这个场景?在设备上或模拟器中。
步骤:
- 导航到您的应用程序
- 按主页按钮,这样应用就不会收到 onDestroy 调用
- 转到系统设置并找到 "force close" 您的应用的正确位置
- 导航回您的应用程序
重要提示:当您要进入系统设置时离开您的应用程序时不要使用后退按钮,而是使用主页按钮,这样应用程序就不会被杀死。
测试这些生命周期的最简单、最干净的解决方案是在您设备的开发人员设置中启用 "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 的回答中所解释的操作设备设置