为什么在应用程序从内存中推出后没有调用onDestroyed()?

时间:2017-12-18 18:37:56

标签: android performance

1)活动处于onStop()状态。  示例:点击概览按钮。

2)使用手机直到android从内存中推出应用程序。   示例:游戏

3)概述了tapped和app tapped然后崩溃

从内存中推出时会破坏它的任何解决方案吗?

2 个答案:

答案 0 :(得分:0)

无法保证会调用onDestroy。不依赖它,它应该仅用于机会性清理。特别是在崩溃的情况下,它不会被调用,因为应用程序可能不会处于安全状态。

答案 1 :(得分:0)

你可以做几件事。在应用程序文件中管理您绝对必要的清理。 (低内存)回调可以调用相同的方法。

一个想法是拥有一个基类或抽象模型,您可以在其中保留对Application类中活动版本的引用。然后,如果调用低内存,则可以手动调用(selectedActivity.OnDestroy)。

这是一个确保低内存调用清理的工作。您还可以为unhandledException侦听器添加一个,以确保崩溃也可以调用您的清理。取决于应用程序关闭时最终清理的重要性。

如果清理过于繁重或耗费时间,您只需在启动时检查的数据库或共享首选项中设置“错误关闭”标志,并在下次应用启动时进行清理。