我的android遊戲在數組列表中保存關卡布局數據。在測試我的級別加載器時,我注意到有時候我的級別沒有加載,只剩下一個黑屏。起初我以爲它可能是我的紋理不重新加載,但我通過繪製一個獨立於ArrayList的對象來證明這是錯誤的,它畫得很好。接下來我使用Log標籤來檢查我的ArrayList的大小。只要我按下家中,然後重新打開我的應用程序,Log標籤開始返回零大小,這意味着我的所有數據都已丟失。現在我真的不想在每次調用onPause時從文件中加載我的級別數據,那麼是否有辦法保留ArrayList中保存的數據?ArrayList在暫停時不保存
0
A
回答
1
問題是你可能正在收集垃圾(即你暫停正在因爲內存問題而變成銷燬)。在您的活動中實施onSaveIntstanceState和onRestoreInstanceState方法以查看是否解決了問題。
Num1在評論中提出了一個很好的觀點,我覺得值得指出。請注意,bundle應該包含少量的數據。如果你的ArrayList很大,這可能就是你的活動在同一個地方被垃圾收集的原因。如果是這樣的話,你有兩種選擇之一。將數據明確地存儲在onDestroy方法的磁盤上(這種方式只在需要時執行,寫入磁盤可能需要一段時間),或者在活動重新聚焦時重新計算這些內容。這只是一件好事情要考慮的事情。
相關問題
- 1. 保存暫停NSOperationQueue文件
- 2. 暫停按鈕在切換播放/暫停時不工作
- 3. 暫停標誌不存在於cpuinfo中?
- 4. Spritekit - 保持遊戲暫停時didBecomeActive
- 5. 如何確保在使用暫停()時不會丟失信號?
- 6. arrayList不保存名稱?
- 7. 當場景暫停時,GameplayKit不會暫停
- 8. jssor:$暫停()不暫停滑塊
- 9. 不同暫停
- 10. ObjectAnimator不暫停
- 11. 如何在懸停時暫停setInterval
- 12. 在包中保存ArrayList savedInstanceState
- 13. 在Android中保存Arraylist
- 14. 暫停RTD服務器在Excel和保存工作表
- 15. 保存應用程序狀態在cordovas暫停與角
- 16. 如何在實體框架進行「保存」事務時暫停調試器?
- 17. 如何保存(暫時)表單數據?
- 18. 暫時保存文本區域值
- 19. 暫時保存數據對象
- 20. 暫時保存Word文檔更改
- 21. 暫時保存git的改變
- 22. 暫停循環並暫停
- 23. Mongoose QueryStream.pause()不暫停?
- 24. 暫停存儲訪問?
- 25. Backgroundworker暫停在
- 26. 暫時暫停SQL服務器複製
- 27. 暫停按鈕停止AVAudioPlayer而不是暫停
- 28. XCode在調試時一直保持暫停
- 29. 如何在暫停android時保持seekbar的狀態?
- 30. AS3暫停,不同的時間
任何特別的東西我必須做的,以便從捆綁中取回或在應用程序恢復時它會在那裏 – Jack
查看我的更新回答 –
我在猜測捆綁包本身會在某個時候遭到破壞,但我是對的認爲如果發生這種情況,onCreate會再次被調用? – Jack