我正在开发一个应用程序,并在测试过程中出现问题。 主要活动显示数据库记录。当系统内存不足时(我按下主页按钮并启动很多应用程序),垃圾收集器会删除数据库记录,如果我回到应用程序,活动上没有显示任何内容(没有记录),并且应用程序强制关闭任何行动(回来,回家,触摸等)
任何解决问题的想法?
答案 0 :(得分:2)
在清单文件中
<application name=".MainAppActivity" >
.
.
.
</application>
在MainActivity中
public class MainAppActivity extends Application {
.
.
.
.
@Override
public void onLowMemory(){
System.gc();
}
}
答案 1 :(得分:0)
您可以检查onResume,如果您的记录数组为空或为null,重新加载它们(可能在服务中重新加载它们),或者您甚至可以在首次加载它们时将它们保存在文件中并保存文件在onPause()
以及稍后的onResume()
中,您可以加载此文件。
无论如何,如果您认为您的应用占用了太多内存,您可以尝试使用System.gc()
来尝试清理一些垃圾,但如果用户启动其他应用并填充内存,此选项可能没用。
答案 2 :(得分:0)
问题解决了。当系统内存非常低时(我启动了10个其他应用程序来测试我的应用程序),它出现了,我通过在数据库类上使用单例模式解决了它。