android 应用状态,保持应用程序状态在Android上
我在保存應(yīng)用程序的狀態(tài)/單例時遇到問題.
當(dāng)應(yīng)用程序啟動時,將顯示加載屏幕(活動),并使用來自Web服務(wù)調(diào)用的值初始化單例(請注意,網(wǎng)絡(luò)訪問不能在主線程上運行).
創(chuàng)建單例后,我打開我的主要活動.請注意,構(gòu)建布局需要單例中的值.
現(xiàn)在假設(shè)應(yīng)用程序進(jìn)入后臺并在那里被殺死(例如由于內(nèi)存不足).應(yīng)用程序被殺死時,我的單例實例被刪除.當(dāng)我切換回我的應(yīng)用程序時,它會嘗試重新創(chuàng)建主要活動.正如我前面提到的,構(gòu)建布局需要單例的值,因此這會導(dǎo)致NullPointerException(當(dāng)我嘗試訪問單例的成員時,因為它不再存在).
我可以以某種方式告訴android在應(yīng)用程序被殺后啟動第一個加載活動嗎?如果我可以在重新創(chuàng)建布局之前刷新單例,那將是很好的,但這似乎是一個問題,因為網(wǎng)絡(luò)調(diào)用不能在主線程上,因此在刷新完成之前不會阻塞.
我假設(shè)我可以在onStop的所有活動中保存單例并在onCreate方法中重新創(chuàng)建它,但這似乎有點太不可預(yù)測,并且可能會導(dǎo)致狀態(tài)不一致……
另一種方法可能就是總是在onStop上完成我的活動,但是這會導(dǎo)致丟失用戶最后的標(biāo)簽,依此類推,即使應(yīng)用程序沒有被殺死,所以這不是一個好的選擇.
關(guān)于如何解決這個問題的任何想法?
總結(jié)
以上是生活随笔為你收集整理的android 应用状态,保持应用程序状态在Android上的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 外键,android -
- 下一篇: 华为鸿蒙2.0的意义,鸿蒙华为研发了多少