安卓模拟器:如何简单模拟因低内存而导致的进程重启?

17

我刚刚了解到,Android有权在任何时候杀死后台应用程序的进程以回收RAM。 然而,该应用程序仍在运行并且可以恢复,但是所有静态变量都已消失(请参见文章)。

我想模拟这种情况下我的应用程序的行为。 有没有比编写一些额外的应用程序来分配大量内存更简单和更可预测的方法?


这与杀死自己的进程 android.os.Process.killProcess(android.os.Process.myPid()) 有什么不同吗? - tidbeck
@tidbeck:你的猜测和我的一样好。我指的是这篇文章:http://android-developers.blogspot.com/2010/04/multitasking-android-way.html - Adrian Grigore
4个回答

10

6

简短回答:如果您使用模拟器,请更改方向。如果使用实际设备,请转到“设置”-->“开发人员选项”-->“不保留活动”来更改设置。

有关详细说明,请参见我对的回答。


谢谢!下次我更新我的安卓应用时会检查这个。 - Adrian Grigore
1
这是测试配置更改 - 而不是进程重启。它们是两回事。 - ZakTaccardi
不要保留不会销毁全局应用程序上下文的活动,我们希望能够销毁全局应用程序上下文,以便在重新运行时它将尝试从应用程序onCreate()开始并启动最后打开的活动。 - Nishant Pardamwar

3

要终止后台进程(但仍可通过历史记录重新启动),您只需在模拟器或设备上使用活动管理器 shell 命令:

$ adb shell am kill com.my.package

2
另一种方法是构建一个超级基本的应用程序,调用 killBackgroundProcesses() 来终止你的包,因为这种方法“与内核杀死那些进程以回收内存相同;系统将在未来根据需要重新启动这些进程。”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接