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