6

トピックで述べたように、別のアクティビティがフォアグラウンドになったとき、または方向が変更されたときに、WebView が Web ページをリロードしないようにする必要があります。その理由は、WebView コンテンツが Javascript/AJAX によってほぼ完全に生成されるためです。いくつかのフォーラムを検索したところ、多くの人が「saveState」および「restoreState」メソッドの使用を提案していることがわかりましたが、ドキュメントを見ると、次のように書かれています。

このメソッドは、この WebView の表示データを復元しないことに注意してください。表示データの保存と復元については、savePicture(Bundle, File) と restorePicture(Bundle, File) を参照してください。

したがって、ここでは、次のように savePicture と restorePicture を使用していました。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

...他のいくつかの行....

        setContentView(R.layout.main);
        mWebView = (WebView) findViewById(R.id.webview);

        if (savedInstanceState == null){
            loadInicialWebUi();
        }else{
            mWebView.restoreState(savedInstanceState);
            boolean restoredPic = mWebView.restorePicture(savedInstanceState, new File("savedDisplayWebView.temp"));
            Log.d(TAG, "restored Picture:" + restoredPic);
        }
    }

@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
    mWebView.saveState(savedInstanceState);
    boolean savedPic = mWebView.savePicture(savedInstanceState, "savedDisplayWebView.temp");
        Log.d(TAG, "saved Picture:" + savedPic);
    super.onSaveInstanceState(savedInstanceState);
}

そして、それらのログは、画像を保存したことを明らかにしていましたが、復元できませんでした. ファイルの参照に何か問題があるのではないかと思いますが、状態を保存するときに作成したファイルの参照を取得するより良い方法は思いつきませんでした。

興奮した人いますか?手がかり/提案をいただければ幸いです。前もって感謝します。

マヌエル。

4

1 に答える 1

0

ページをロードして、onCreate()この属性をマニフェストの Activity に配置します。

android:configChanges="orientation|keyboardHidden"

これにより、向きが変わったときにアクティビティが再開されるのを防ぐことができます。また、Activity は でページを読み込むため、onCreate()別の Activity をフォアグラウンドに移動しても、ページをリロードする必要はありません。

于 2010-11-18T17:29:22.357 に答える