noo*_*ber 16 lifecycle lifetime android-intent activity-lifecycle android-activity
如何防止在关闭屏幕时重新创建活动?
我所做的
- 启动Bejewels并前往珠宝屏幕.
- 短按电源按钮.屏幕已关闭,但设备未关闭.
- 再次按电源按钮.
我所看到的
与关闭屏幕前相同的屏幕.
对于我的应用程序(简单的一个,只是一个带有单个WebView的Web应用程序),方案如下:
我所做的
- 启动我的应用.onCreate()方法活动将URL加载到WebView中.
- 短按电源按钮.屏幕已关闭,但设备未关闭.
- 再次按电源按钮.
我所看到的
WebView正在重新加载页面.
我的期望
在Bejewels的情况下,我希望看到相同的屏幕,我的应用程序是以前状态的页面:脚本正在运行,表单字段已填充等.
调试显示,我错了(在前一个问题中)并且onDestroy()和onCreate()在屏幕刚刚打开时被逐个调用.由于我仍然听到由脚本播放的音乐,当屏幕关闭时,看起来活动和WebView都存在,直到我再次按下电源按钮.
我尝试了什么.
Twi*_*led 28
此问题的解决方案可能与此处描述的相同:每次屏幕亮起时都会调用onDestroy
听起来您的活动因配置更改而重新启动,请参阅http://developer.android.com/guide/topics/resources/runtime-changes.html.最常见的是当您的应用处于横向模式(如大多数游戏)时,然后通过点击电源按钮启用屏幕锁定.屏幕锁定处于纵向模式,因此触发方向更改,从而触发重新启动的活动.
可以通过添加以下内容来覆盖此行为:
android:configChanges="orientation|keyboardHidden"
Run Code Online (Sandbox Code Playgroud)
...如果您的API级别低于13,则显示您的清单文件.或者
android:configChanges="orientation|keyboardHidden|screenSize"
Run Code Online (Sandbox Code Playgroud)
...如果您的API级别大于13.
请注意,您可能需要转到project-> properties并更新项目构建目标.如果您的构建目标小于13,则无法识别"screenSize".
可能是导致重置活动的不同配置更改.以下链接提供了可能的配置更改列表:http://developer.android.com/guide/topics/manifest/activity-element.html#config
详细信息在这里: 将 Android 视图附加到布局/从布局分离
| 归档时间: |
|
| 查看次数: |
14166 次 |
| 最近记录: |