我的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