我正在尝试避免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中提到的,我们需要在活动周期的onSaveInstanceState
和onRestoreInstanceState
中调用这些函数,所以我在这种情况下遇到崩溃,因为我没有从活动中调用这些函数周期。
是否有人为此案例提供了解决方法/修复方法。
更新:
在我的应用程序中,我使用设置方向,因此我无法使用onSaveInstanceState
和onRestoreInstanceState
,因为当我们有固定方向时,这些函数不会被调用。
答案 0 :(得分:1)
重新呈现页面,因为您的活动在方向更改时被销毁并重新创建。在清单中更新您的活动:
<activity android:name="..."
android:configChanges="orientation|screenSize" .../>
这将阻止系统在更改方向时重新创建活动。
答案 1 :(得分:0)
我认为您应该查看文档的这一部分:Handling the Configuration Change Yourself