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