gpt4 book ai didi

android - onLowMemory() 在应用程序因内存不足而终止时未调用

转载 作者:行者123 更新时间:2023-11-29 17:54:44 24 4
gpt4 key购买 nike

我在 Activity 和 Application 类中都放置了 onLowMemory() ,请注意,当应用程序因内存不足而被终止时,这两个方法都不会被触发。

是否有回调方法来找出应用程序被杀死的原因?特别是,不是会触发 onPause()、onDestroy() 的正常流程。例如。内存不足/强制停止。

谢谢

我的应用被终止是因为我尝试运行多个其他应用来模拟低内存情况。如果应用程序被杀死,我有一个广播接收器 watch 。我发现如果应用程序被操作系统的低内存杀死,则倾向于重新启动应用程序。如果应用程序被强制退出,例如使用应用程序快照将其删除(按住主页 btn)。它不会重新启动。我的接收器将始终询问用户是否要重新启动应用程序。问题是应用程序已经重新启动,如果它是由内存不足引起的。我的广播接收器无法判断应用程序如何结束并相应地显示

最佳答案

何时调用 onLowMemory() 没有精确定义,但通常发生在 Android 运行时已经安全地杀死所有它可以杀死的东西时。换句话说,当内存中只剩下 Activity 服务和可见 UI 时。只有在那个时候,Android 才可能在每个正在运行的进程上调用此方法,以试图要求那些剩余的进程减少它们的内存使用。它不会被称为您的应用程序在其自己的特定地址空间中内存不足的警告。

如果您的应用占用大量内存且当前不可见,则它很可能会被终止。至于找出你的应用程序被杀死的原因,原因总是 Android 运行时只是需要它的内存地址空间。除了通常的 onPause()、onStop()、onDestroy() 序列之外,没有对您的应用程序进行任何回调。强制停止仅在您的应用崩溃或无响应时发生。

关于android - onLowMemory() 在应用程序因内存不足而终止时未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20280176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com