我在构建android webview时面临问题。问题是,当应用程序运行和手机改变方向时,我的意思是从水平到垂直,反之亦然,应用程序重新启动。谢谢
答案 0 :(得分:2)
默认行为是在屏幕方向更改时重新启动活动。您可以自己编写自定义代码来处理方向更改事件:
android:configChanges="orientation"
添加到您的AndroidManifest.xml
onConfigurationChanged
答案 1 :(得分:1)
默认的android行为是销毁并重新创建方向更改的活动。您可以覆盖onSaveInstanceState()
以在销毁之前保存应用程序数据,也可以调用onRetainNonConfigurationInstance()
来保留有状态对象。请参阅the android docs。
答案 2 :(得分:1)
欧麦尔,
您需要将android:configChanges="orientation"
参数添加到Activity
中的AndroidManifest.xml
,以防止您的活动在方向更改时重新开始。
请参阅:http://developer.android.com/guide/topics/manifest/activity-element.html#config
答案 3 :(得分:1)
另一种可能性(例如,通常适合在WebView之外没有状态的较轻的活动)是吸收旋转事件并让视图重绘自身。见http://www.androidguys.com/2008/11/11/rotational-forces-part-three/ - 想法是:
放入一个android:configChanges条目 您的文件,列出配置 您想要自己处理的更改 与允许Android处理 你。
- 醇>
实现onConfigurationChanged() 在您的Activity中,将被调用 当其中一个配置发生变化时 你在android:configChanges中列出了 发生
答案 4 :(得分:1)
答案 5 :(得分:0)
umar ...在Android上保存实例状态是完全不同的。在软杀死(手机旋转)上,您可以使用捆绑包在onSaveInstanceState中保存非视图状态。在硬杀死(活动具有焦点时的后退按钮)上,您可以选择使用首选项在onStop中保存非视图和查看状态。您可以在onCreate中恢复您的州。
您可以利用IF onSaveInstanceState被调用的事实,它将被称为BEFORE onStop。因此,这允许您在onSaveInstanceState中将标志isSavedInstanceState设置为true,以避免在onStop中保存prefs,除非是硬杀死。诀窍是在OnCreate中的onResume NOT中将标志isSavedInstanceState重置为false。
JAL
我有示例代码here。