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 固有の問題を経験した人はいますか?