我正在创建一个安卓应用程序。它拥有从服务器下载的过程。它运行良好,直到应用程序运行并维护数据而没有任何崩溃,但现在我遇到了如下所述的问题
当应用程序通过按主页按钮最小化并经过很长时间后,当我打开应用程序时,应用程序中的所有数据都被删除。它给了我一个“空指针异常”;甚至 ArrayList 值也被删除,它给出了一个 0 大小的数组列表。
我仅通过 OnResume 从主屏幕最大化后打开应用程序,但它没有调用自身。
我不知道为什么会出现这个问题。谁能给我一个解决方案并指出我做错了什么?
是的,正如@paradx 所说,垃圾收集器确实会在应用程序处于后台时丢弃数据。最后我找到了基于@paradx 建议的解决方案,因为数据存储在 SQLite 或 savedInstanceState
只需通过一些静态值
intent.putExtra("static key","static value");
然后将静态哈希图写入文件并检索以供以后使用。现在应用程序不会因为这个问题而崩溃。
我已经发布了这个解决方案,以便有人可以使用它。
我的猜测是,当您的应用程序在后台时,垃圾收集器会丢弃您的数据。尝试将数据保存到内置 SQLite 数据库,或 onSaveInstanceState() 生命周期方法中的 savedInstanceState 包,然后在 onRestoreInstanceState() 方法中将其加载回。
Did u use the apache HTTP client or the UrlConnection?
See Apache http client or URLConnection
Maybe the wrong use could lead to such an NPE. Could you also please post your logCat output?