我正在记录每个onCreate()和onDestroy()调用。我发现,一旦我点击我的Android上的电源按钮(以及模拟器上的电源按钮!),我的活动就会打电话
> onDestroy();
> onCreate();
这会杀死我的游戏,然后立即从头开始重新打开它。当然,一旦用户解锁屏幕,游戏就会显示在主菜单中,所有进度都会被杀死。
是否可以覆盖或禁用此行为?
答案 0 :(得分:11)
当您按下电源按钮时,屏幕锁定通常会启动。这可能会触发当前在前台活动的配置更改(屏幕锁定通常处于纵向模式),导致其被销毁并重新创建。 / p>
在AndroidManifest.xml中为此类活动声明android:configChanges="keyboardHidden|orientation"
会阻止它们被销毁和重新创建,但也意味着您将通过覆盖onConfigurationChanged
答案 1 :(得分:3)
当调用onCreate()
和onDestroy()
方法时,您无法覆盖(至少不会遇到非常大的痛苦)。你要做的最好的事情是弄清楚如何在他们被召唤的范围内工作。将您的州保存在onDestroy()
。这样做可以让你的应用程序能够容忍这个调用序列,因为坦率地说,它应该/必须。这就是android的工作方式。