应用程序恢复很长时间后应用程序崩溃

时间:2012-06-07 13:14:21

标签: android caching memory crash

我正在创建一个Android应用程序。它从服务器进行下载过程。它运行正常,直到应用程序运行并保持数据没有任何崩溃,但现在我遇到了如下所述的问题

当按下主页按钮使应用程序最小化时,经过很长时间后,当我打开应用程序时,应用程序中的所有数据都将被删除。它给了我一个“空指针异常”;即使是ArrayList值也会被删除,它会给出一个0大小的arraylist。

我在从主屏幕通过OnResume最大化之后打开应用程序,但它没有调用自己。

我不知道为什么会出现这个问题。任何人都可以建议我一个解决方案,并指出我做错了什么?

3 个答案:

答案 0 :(得分:3)

是的,这是真的 - 正如@paradx所说 - 当应用程序处于后台时,垃圾收集器会丢弃数据。最后我找到了一个基于@paradx建议的解决方案,因为数据存储在SQLite或savedInstanceState中

只需通过

传递一些静态值
 intent.putExtra("static key","static value");

然后将静态hashmap写入文件中并检索以供以后使用。现在应用程序不会因此问题而崩溃。

我已发布此解决方案,以便有人可以使用它。

答案 1 :(得分:1)

我的猜测是,当您的应用在后台时,垃圾收集器会丢弃您的数据。尝试将数据保存到内置的SQLite数据库,或者保存在onSaveInstanceState()生命周期方法中的savedInstanceState包中,然后将其加载回onRestoreInstanceState()方法。

答案 2 :(得分:0)

您使用的是apache HTTP客户端还是UrlConnection?

请参阅Apache http client or URLConnection

错误的使用可能导致这样的NPE。 您还可以发布您的logCat输出吗?