屏幕旋转时如何防止WebView自动刷新

时间:2012-06-07 00:48:27

标签: android android-webview

我的应用程序 - 当屏幕旋转和我的活动回到第一个时,WebView的活动自动刷新。

示例:当我从A-> B或B-C切换时,WebView处理3活动(A,B,C),然后当屏幕旋转时它将返回到A.

我的问题:我们如何保持活动活动屏幕旋转?

3 个答案:

答案 0 :(得分:48)

解决这个问题的方法不止一种。

最简单的方法是将android:configChanges="orientation|screenSize"添加到清单中的相关Activity。通过设置此标记,您可以告诉Android不要销毁Activity,并且您将自己处理所有方向更改(如果有)。

更现代的方法是将WebView置于Fragment内,并使用setRetainInstance(true)标志使其保留其实例。托管Activity仍会在方向更改时被销毁,但包含Fragment的{​​{1}}将被分离并重新附加,而无需重新创建自己。您可以在API演示中找到此功能的an example。请记住,支持库提供了与Honeycomb兼容的片段实现,因此不要被“常规”WebView类的API级别所迷惑。

答案 1 :(得分:10)

突出显示@kirgy评论,如果您的API>您必须在清单中添加orientation|screenSize 3.2,在某些情况下没有它就无法工作。

答案 2 :(得分:5)

android:configChanges="orientation"添加到清单文件中,以防止在屏幕方向更改时重新启动。

像::

   <activity android:name=".MyActivity"     
    android:configChanges="orientation|screenSize"  
    android:label="@string/app_name">

有关参考资料,请参阅this