2012-04-14 20 views
7

私はViewPagerで構築されたアンドロイドアプリケーションを持っており、各ページには別々のWebViewがあります。すべてWebViewは異なるウェブサイトを指します。例えば、Page1:facebook、Page2:Twitter、Page3:Google+。ユーザーはページを追加/削除できます。WebViewの状態を保存してアンドロイドに復元

私のmPager.setOffscreenPageLimit(1)mPagerViewPagerのインスタンスです)。これは、ユーザーが3.pageを見ると、最初のフラグメントが破棄されていることを意味します(ユーザーが再び2.pageを見ると再作成されます)。

私が望むのは、最初にWebViewの状態を保存してから、その状態を破棄してどこかに保存し、ユーザーが見ると復元することです。それはページを再読み込みし、明らかにその迷惑なので。私は、ユーザーがすべてのスワイプでWebページをリロードすることを望んでいません。私は試しました

mWebView.saveState(outState); 
mWebView.restoreState(savedInstanceState); 

しかし、それは動作しないようです。ウェブビューの状態を保存して復元するためのアイデアはありますか?

私は左または現在のページの右側のいずれかに維持するためにページ数を設定しsetOffscreenPageLimit()、実はなど

+0

この問題の解決策がありますか。 –

+0

いいえ、私はmPager.setOffscreenPageLimit(3)を設定しました。ここで3は私のmPagerの合計ページです。しかし、それは解決策ではありません。 – EvanBlack

+0

Kありがとう....... –

答えて

0

を状態を保存し、いくつかのクラスでのWebView自身を保存しようとしています。

docsFragmentPagerAdapterより:

見えないそのビュー階層を破壊することができるものの、ユーザの訪問は、メモリに保持される各ページ、 の断片。この は、断片 のインスタンスが任意の量の状態を保持できるため、かなりの量のメモリを使用する可能性があります。

私はあなたのケースでは、WebViewsがかなり大きなメモリになる可能性があるので、Androidは再び必要になるまでそれを廃棄すると思います。