据我所知,Android有权随时终止后台应用程序的进程以回收RAM。应用程序仍在运行,但仍然可以恢复,但是我的所有静态变量都已消失(请参见this文章)。Android模拟器:模拟由于内存不足导致进程重启的简单方法?
我想在这种情况下模拟我的应用程序的行为。最简单的方法是什么?与编写一些额外分配大量内存的应用程序相比,肯定有一种更容易且更可预测的方式。
据我所知,Android有权随时终止后台应用程序的进程以回收RAM。应用程序仍在运行,但仍然可以恢复,但是我的所有静态变量都已消失(请参见this文章)。Android模拟器:模拟由于内存不足导致进程重启的简单方法?
我想在这种情况下模拟我的应用程序的行为。最简单的方法是什么?与编写一些额外分配大量内存的应用程序相比,肯定有一种更容易且更可预测的方式。
找到两个类似的问题Simulate killing of activity in emulator和Simulate low battery & low memory in Android。
从这些问题解决方案:
adb shell
然后kill
从ps
PID
过程中杀死它使用DDMS谢谢!我将在下次更新我的Android应用时检查这一点。 – 2013-02-26 20:26:28
这会测试配置更改 - 而不是进程重启。这是两件不同的事情。 – ZakTaccardi 2016-11-29 23:03:17
不要让活动不会破坏全局应用程序上下文,我们希望能够销毁全局应用程序上下文,以便在重新运行时它将尝试从应用程序onCreate()开始并启动上次打开的活动 – 2017-05-23 11:08:36
另一种方法是构建一个超级基本应用程序,该应用程序为您的程序包调用killBackgroundProcesses(),因为此方法“与内核杀死那些进程以回收内存相同;系统将负责在将来重新启动这些进程如所须。”
要杀死后台进程(但可通过历史还是重新启动),你可以在模拟器或设备使用活动管理器shell命令:
$ adb shell am kill com.my.package
这是否杀死自己的进程'android.os.Process不同。 killProcess(android.os.Process.myPid())'? – tidbeck 2012-01-03 13:03:34
@tidbeck:你的猜测和我一样好。我指的是这篇文章:http://android-developers.blogspot.com/2010/04/multitasking-android-way.html – 2012-01-03 18:52:44
可能的重复[Android:如何强制重新启动服务(操作系统在低内存行为中被查杀) ](http://stackoverflow.com/questions/7257378/android-how-to-force-restart-service-os-killing-on-low-memory-behavior) – Flow 2013-09-05 10:22:46