2012-04-14 48 views
7

Tôi có một ứng dụng Android được xây dựng với ViewPager và WebView riêng biệt trong mỗi trang. Mỗi WebView chỉ các trang web khác nhau. Ví dụ: Trang1: facebook, Trang 2: Twitter, Trang 3: Google+. Người dùng có thể thêm/xóa trang.Lưu trạng thái WebView và khôi phục trong ANDROID

My mPager.setOffscreenPageLimit(1) (trong đó mPager là phiên bản ViewPager). Có nghĩa là, khi người dùng xem trang 3., đoạn đầu tiên sẽ được xử lý (và được tạo lại khi người dùng xem lại trang 2.).

Điều tôi muốn là lưu trạng thái WebView đầu tiên trước khi phá hủy và lưu trạng thái của nó ở đâu đó, sau đó khôi phục trạng thái của nó khi người dùng nhìn thấy nó. Bởi vì nó tải lại trang và rõ ràng là nó gây phiền nhiễu. Và tôi không muốn người dùng tải lại trang web trên mọi lần vuốt. Tôi đã thử với

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

nhưng dường như không hoạt động. Bất kỳ ý tưởng nào để lưu và khôi phục trạng thái của webviews?

Tôi đã cố gắng tiết kiệm WebView chính nó trong một số lớp, tiết kiệm quốc gia, vv

+0

bạn có giải pháp nào cho vấn đề này không. –

+0

Không, tôi vừa thiết lập mPager.setOffscreenPageLimit (3), trong đó 3 là tổng số trang của mPager của tôi. Nhưng nó không phải là một giải pháp. – EvanBlack

+0

K cảm ơn ....... –

Trả lời

0

Trên thực tế, setOffscreenPageLimit() đặt số trang để giữ cho một trong hai bên trái hoặc bên phải của trang hiện hành.

Từ FragmentPagerAdapterdocs:

Các mảnh vỡ của mỗi trang người dùng truy cập sẽ được lưu giữ trong bộ nhớ, mặc dù hệ thống phân cấp view của nó có thể bị phá hủy khi không nhìn thấy được. Điều này có thể dẫn đến việc sử dụng một số lượng đáng kể bộ nhớ vì đoạn trường hợp có thể chứa một số lượng tùy ý của trạng thái.

Tôi nghĩ rằng trong trường hợp của bạn vì WebView có thể khá lớn trong bộ nhớ, Android sẽ xử lý nó cho đến khi cần lại.

Các vấn đề liên quan