2

webview saveState() restoreState() ロジックを実装して、webview の現在のページと履歴を次のように復元しました。

public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    ...

    if(savedInstanceState != null)
    {
        webView.restoreState(savedInstanceState);
    }
    else
    {
        webView.loadUrl(url);
    }
}

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);

    if(webView != null) webView.saveState(outState);
}

アプリがバックグラウンドにあるときに、DDMS を介してアプリ プロセスを強制終了して、状態の保存をテストしています。

アプリを再起動すると、2.x デバイスでは期待どおりに動作しますが、4.x デバイスでは機能しません。代わりに、空白の Web ビューが表示されるか、奇妙なことに、履歴の最初のページが表示されます。

webview で 4.x 固有の問題を経験した人はいますか?

4

1 に答える 1

0

問題を解決しました。

Save/restore問題ではありませんが、問題は私が読み込んでいた特定の URL にあったことが判明しました。3.0+ でこのバグに遭遇するハッシュ記号が含まれていました:問題の詳細

于 2012-06-14T14:38:52.793 に答える