当我将我的应用程序置于后台并再次唤醒时,它意味着所有全局变量都被清除。这种情况并非总是发生,但仅在极少数情况下发生。我猜这可能只是内存崩溃。为什么全局值被清除?如何从中恢复?
答案 0 :(得分:0)
这可能是Android的工作方式。仅仅因为您关闭应用程序中的上一个活动并不意味着您的应用程序已从内存中清除。如果Android不需要您的应用程序占用的内存空间,它不一定会被Android立即杀死。垃圾收集器也有自己的生命周期,不一定会在每次活动销毁时触发。
你可以试试这个:开始愤怒的小鸟,开始玩,解雇一些“疯狂的小鸡”。在正在进行的游戏中按主页按钮,然后再次直接启动愤怒的小鸟。注意你最终是如何从“家庭教育”出来的同一级别。再次按下主页按钮并启动另一个应用程序(浏览器通常需要内存耗尽)。一段时间后再次启动“愤怒的小鸟”并注意你将如何再次完成整个启动序列(即你不一定会在游戏中间结束,在你之前离开的级别上)。
如果你确实需要维护应用程序状态,无论是GC运行还是不运行,都应该使用SharedPreferences或SQLite数据库。您可以在此处详细了解这些概念:http://developer.android.com/guide/topics/data/data-storage.html