3

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

有什么想法可以解决这个问题吗?

4

3 回答 3

2

在清单文件中

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

在 MainActivity

public class MainAppActivity extends Application {
   .
   .
   .
   .
   @Override
   public void onLowMemory(){
      System.gc();
   }
}
于 2012-10-14T15:37:04.400 回答
0

您可以检查 onResume,例如,如果您的记录数组为空或为空,请重新加载它们(可能在服务中重新加载它们),或者您甚至可以在第一次加载它们时将它们保存在文件中,然后将文件保存在onPause()以后在onResume()你可以加载这个文件。

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

于 2012-10-14T14:44:54.410 回答
0

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

于 2012-10-23T08:56:56.643 回答