内存不足时Android应用程序强制关闭

Posted

技术标签:

【中文标题】内存不足时Android应用程序强制关闭【英文标题】:Android application force closes when memory is low 【发布时间】:2012-10-04 16:38:58 【问题描述】:

我正在开发一个应用程序,但在测试过程中出现了问题。 主要活动显示数据库记录。当系统内存不足时(我按下主页按钮并启动很多应用程序),垃圾收集器会删除数据库记录,如果我回到应用程序,则活动上没有显示任何内容(无记录),并且应用程序强制关闭任何操作(返回、主页、触摸等)

有解决问题的办法吗?

【问题讨论】:

首先我想知道你正在扩展哪个类,无论是活动还是应用程序 【参考方案1】:

在清单文件中

<application name=".MainAppActivity" >
   .
   .
   .
</application>

在主活动中

public class MainAppActivity extends Application 
   .
   .
   .
   .
   @Override
   public void onLowMemory()
      System.gc();
   

【讨论】:

【参考方案2】:

您可以检查 onResume,例如,如果您的记录数组为空或 null,则重新加载它们(可能在服务中重新加载它们),或者您甚至可以在首次加载它们并保存文件时将它们保存在文件中在onPause() 和以后的onResume() 中,您可以加载此文件。

无论如何,如果您认为您的应用占用太多内存,您可以尝试使用System.gc() 尝试清理一些垃圾,但如果用户启动其他应用并填充内存,此选项可能没有用。

【讨论】:

【参考方案3】:

问题解决了。它在系统内存极低时出现(我启动了 10 个其他应用程序来测试我的应用程序),我通过在数据库类上使用单例模式解决了它。

【讨论】:

以上是关于内存不足时Android应用程序强制关闭的主要内容,如果未能解决你的问题,请参考以下文章

哪些 Android 工具和方法最适合查找内存/资源泄漏? [关闭]

多张图像缺乏内存[关闭]

退出Android时应用程序强制关闭

Android:尝试从 URI 播放视频时应用程序强制关闭

在运行 Android 模拟器时强制关闭应用程序错误

当我使用 WebView loadUrl 函数时,Android Studio 应用程序被强制关闭