Android网络应用重新启动

时间:2011-02-28 15:23:07

标签: android

我在构建android webview时面临问题。问题是,当应用程序运行和手机改变方向时,我的意思是从水平到垂直,反之亦然,应用程序重新启动。谢谢

6 个答案:

答案 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/ - 想法是:

  
      
  1. 放入一个android:configChanges条目   您的文件,列出配置   您想要自己处理的更改   与允许Android处理   你。

  2.   
  3. 实现onConfigurationChanged()   在您的Activity中,将被调用   当其中一个配置发生变化时   你在android:configChanges中列出了   发生

  4.   

答案 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