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