我在某人的代码中遇到了ApplicationManager
以下的课程。该类基本上保留了所有已启动活动的列表。
我仔细检查过,发现这个类只在以下两种情况下使用:
oncreate()
的{{1}}中的activity
,以便将开始的活动添加到列表中。ApplicationManager.getInstance().addActivity(this);
来完成列表中的每个活动。所以这是我的问题......这真的需要吗?如果我不这样做会有什么后果呢?应用程序关闭后,应用程序中的活动是否仍会占用内存?
谢谢!
ApplicationManager.getInstance().applicationExit();
答案 0 :(得分:1)
没有。从来没有这样做过。
这只是内存泄漏的一个方法。 Android系统可以随时关闭任何活动,无论这些活动是否存在,这个类都会处理它们。
垃圾收集无法运行,因为句柄保持对象"活着"
还要考虑这个:
旋转设备会导致Activity重新启动(再次调用其OnCreate)。每次旋转设备时,都会重新创建活动并将新指针添加到列表中。所有其他指向同一活动的指针基本上已经死了但占用了内存。每个活动中的每个视图都将保持活动状态,因为它们的上下文(活动)仍然存储了引用。
只需不断旋转设备,您实际上可能会耗尽内存。
答案 1 :(得分:0)
您可以管理应用程序生命周期。无论同时打开多少活动,您都可以使用applicationExit()
关闭应用。
答案 2 :(得分:0)
不要这样做,样品的唯一好处就是一次性杀死所有活动。
这种情况非常罕见,大多数情况下都不推荐。
如果您真的想这样做,可以致电Process.killProcess(android.os.Process.myPid());