【发布时间】:2012-05-16 22:30:51
【问题描述】:
如何防止在关闭屏幕时重新创建活动?
我做什么
- 启动 Bejewels 并转到珠宝屏幕。
- 短按电源按钮。屏幕已关闭,但设备未关闭。
- 再次按下电源按钮。
我所看到的
与关闭屏幕前相同的屏幕。
对于我的应用程序(微不足道的应用程序,只是一个带有单个 WebView 的网络应用程序),场景如下:
我做什么
- 启动我的应用程序。 Activity onCreate() 方法将 URL 加载到 WebView 中。
- 短按电源按钮。屏幕已关闭,但设备未关闭。
- 再次按下电源按钮。
我所看到的
WebView 正在重新加载页面。
我的预期
在 Bejewels 案例中,我希望看到相同的屏幕,对于我的应用来说,该页面是处于其先前状态的页面:脚本正在运行,表单字段正在运行 填充等。
调试表明,我错了(在上一个问题中)并且 onDestroy() 和 onCreate() 在屏幕刚打开时被一个接一个地调用。而且由于我仍然听到由脚本播放的音乐,因此当屏幕关闭时,在我再次按下电源按钮之前,似乎 Activity 和 WebView 都存在。
我试过了。
- android:alwaysRetainTaskState="true" 行为相同。
- 阅读意图(无济于事,我只是不明白,它们如何应用于我的情况)。
- 使用 PhoneGap。它的行为不同:只是在按下电源按钮时杀死整个应用程序。这更好,但不是最好的。
【问题讨论】:
标签: android-intent android-activity lifecycle lifetime activity-lifecycle