2012-04-14 128 views
7

我有一個Android應用程序,它使用ViewPager和每個頁面中的分開的WebView構建。每個WebView指向不同的網站。例如,Page1:臉書,第2頁:Twitter,第3頁:Google+。用戶可以添加/刪除頁面。保存WebView狀態並在ANDROID中恢復

我的mPager.setOffscreenPageLimit(1)(其中mPagerViewPager的實例)。這意味着,當用戶查看3.頁面時,第一個片段將被丟棄(並且在用戶再次查看第2頁時重新創建)。

我想要的是在破壞之前保存第一個WebView的狀態並在某處保存其狀態,然後在用戶看到它時恢復它。因爲它重新加載頁面,顯然它很煩人。而且我不希望用戶在每次刷卡時重新加載網頁。我已經嘗試過

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

但它似乎不工作。任何想法保存和恢復webviews的狀態?

我試圖節省的WebView本身在某些類,節能狀態等

+0

你有沒有解決這個問題的方法。 – 2013-04-29 05:23:13

+0

不,我剛剛設置了mPager.setOffscreenPageLimit(3),其中3是我的mPager的總頁數。但這不是一個解決方案。 – EvanBlack 2013-04-29 12:25:05

+0

K謝謝....... – 2013-04-29 13:08:02

回答

0

其實,setOffscreenPageLimit()設置的頁面數量,以保持到左邊或當前頁面的右側。

FragmentPagerAdapterdocs

每個頁面的用戶訪問將被保存在內存中, 的雖然它的視圖層次,可以在不破壞可見的片段。這個 可能會導致使用大量的內存,因爲片段實例可以保持任意數量的狀態。

我想你的情況,因爲WebViews可以在內存中相當大,Android處置它,直到它再次需要。