0

向きの変更時に webview が web ページを再レンダリングするのを避けようとしています。

私のアクティビティは縦向きに固定されていますが、ボタンを 1 回クリックすると、アクティビティの向きが横向きと縦向きに変わります。

アクティビティの向きを変更すると、Web ビューでページのレンダリング/更新に時間がかかります。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、 andを使用できません。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 に答える