0

我试图避免 webview 在方向更改时重新渲染网页。

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

当我更改活动的方向时,我的网络视图需要时间来呈现/刷新页面。我的 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 文档中提到的,我们需要在活动周期中调用这些函数onSaveInstanceStateonRestoreInstanceState所以在这种情况下我会崩溃,因为我没有从活动周期中调用这些函数。

有没有人有这种情况的解决方法/修复。

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

4

2 回答 2

1

页面被重新渲染,因为您的活动在方向更改时被破坏并重新创建。更新清单中的活动:

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

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

于 2013-11-14T14:03:33.017 回答
0

我认为您应该查看文档的这一部分:自己处理配置更改

于 2013-11-14T13:37:56.963 回答