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

问题描述 投票:0回答:2

1)活动在onStop()州。示例:点击概览按钮。

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

3)概述tapped和app轻拍然后崩溃

任何从内存中推出时销毁它的解决方案?

android performance
2个回答
0
投票

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


0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.