Java 如何模拟Android GC杀死应用程序
我需要在接下来的情况下测试应用程序的序列化\反序列化:Java 如何模拟Android GC杀死应用程序,java,android,garbage-collection,Java,Android,Garbage Collection,我需要在接下来的情况下测试应用程序的序列化\反序列化: 应用程序在后台运行了很长时间(空闲模式),并被GC杀死 应用程序位于后台,由于资源(内存\cp)不足而被GC杀死 在某些设备上,它可以通过启动1-2个游戏来模拟。 但在1gb内存的四核设备上,4-10个重量级游戏非常困难,需要花费大量时间 我尝试实现一些模拟资源加载的演示: 创建位图数组 创建对象数组 推出很多服务 开展很多活动 但并没有结果,应用程序仍然可以工作(即使在旧设备上),我的演示程序因OutOfMemoryExcepti
- 应用程序在后台运行了很长时间(空闲模式),并被GC杀死李>
- 应用程序位于后台,由于资源(内存\cp)不足而被GC杀死李>
- 创建位图数组
- 创建对象数组
- 推出很多服务
- 开展很多活动
当系统进入后台时,通常在
活动
中调用onStop
,然后在没有进一步警告和反应的情况下终止应用程序。因此,如果您离开应用程序并将其杀死,则可以模拟它被杀死。在play store上安装任何内存清理器。我安装了这个:
一旦你清理了你的记忆。内存中存储的变量将消失。除非您将数据存储在Parcelable中。它将是持久性的。设置“不保留活动”下有一个开发人员选项,用于在用户离开后立即取消活动。我在我的4.0 android上有提到@Ifor的选项,但在2.3上我认为没有(我升级了)@Ifor,谢谢,但绝对不同。在“不保留活动”的情况下,将调用onDestroy,并且应用程序将正常关闭(就像从应用程序中常见的退出)。这看起来是事实,我也这么认为。但如果您检查活动回调和日志,您将看到完全不同的行为。当您从任务管理器中杀死应用程序时,它看起来像是从应用程序中正常退出(使用onDestroy并正确完成)。@nister:当您从任务管理器中杀死它时,它可能是这样。但问题是当应用程序因为内存不足而被终止时会发生什么。当Android因为内存限制而终止应用程序,然后用户打开应用程序时,最后一个活动被打开。手动终止应用程序时,仅恢复主活动。