避免webview在方向更改时重新渲染网页[Android]

时间:2013-11-14 13:34:02

标签: android webview orientation

我正在尝试避免webview在方向更改时重新呈现网页。

我的活动是将纵向固定为纵向,但点击一个按钮我将活动的方向更改为横向和纵向。

当我更改活动的方向时,我的Web视图需要时间来呈现/刷新页面。 Web视图呈现的我的网页是本地的,仍然需要时间(大约2-4秒)来显示页面的包含,并且我在转换时间看到空白的白色屏幕。

我尝试通过调用以下函数来保存Web视图的状态:

 // Before switching calling
 Bundle webViewState;
 webViewState = new Bundle();
 Webview.saveState(webViewState);

 // When switching done then calling. 
 Webview.restoreState(webViewState);

但正如android sdk docs中提到的,我们需要在活动周期的onSaveInstanceStateonRestoreInstanceState中调用这些函数,所以我在这种情况下遇到崩溃,因为我没有从活动中调用这些函数周期。

是否有人为此案例提供了解决方法/修复方法。

更新: 在我的应用程序中,我使用设置方向,因此我无法使用onSaveInstanceStateonRestoreInstanceState,因为当我们有固定方向时,这些函数不会被调用。

2 个答案:

答案 0 :(得分:1)

重新呈现页面,因为您的活动在方向更改时被销毁并重新创建。在清单中更新您的活动:

<activity android:name="..."
    android:configChanges="orientation|screenSize"  .../>

这将阻止系统在更改方向时重新创建活动。

答案 1 :(得分:0)

我认为您应该查看文档的这一部分:Handling the Configuration Change Yourself