2012-04-14 12 views
7

में पुनर्स्थापित करना मेरे पास एक एंड्रॉइड एप्लिकेशन है जो प्रत्येक पृष्ठ में ViewPager और अलग वेबव्यू के साथ बनाया गया है। प्रत्येक WebView विभिन्न वेबसाइटों को इंगित करता है। उदाहरण के लिए, पेज 1: फेसबुक, पेज 2: ट्विटर, पेज 3: Google+। उपयोगकर्ता पृष्ठों को जोड़/हटा सकता है।वेबव्यू की बचत स्थिति और एंड्रॉइड

मेरा mPager.setOffscreenPageLimit(1) (जहां mPagerViewPager का उदाहरण है)। जिसका अर्थ है, जब उपयोगकर्ता 3. पृष्ठ देखता है, पहला खंड का निपटारा किया जा रहा है (और फिर उपयोगकर्ता द्वारा देखे जाने पर फिर से बनाया गया 2. पृष्ठ फिर से)।

मैं जो चाहता हूं वह पहले वेबव्यू के राज्य को नष्ट करने और अपने राज्य को कहीं से बचाने से पहले सहेजना है, और फिर उपयोगकर्ता इसे देखकर इसे पुनर्स्थापित करें। क्योंकि यह पृष्ठ को पुनः लोड करता है और जाहिर है कि यह कष्टप्रद है। और मैं नहीं चाहता कि उपयोगकर्ता प्रत्येक स्वाइप पर वेब पेजों को फिर से लोड करे। मैंने

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

के साथ प्रयास किया है लेकिन यह काम नहीं लगता है। वेबव्यू के राज्यों को सहेजने और बहाल करने के लिए कोई विचार?

मैं कुछ वर्ग में WebView ही बचत, वास्तव में बचत राज्यों आदि

+0

क्या आपको इस समस्या का समाधान मिला है। –

+0

नहीं, मैंने बस mPager.setOffscreenPageLimit (3) सेट किया है, जहां 3 मेरे mPager के कुल पृष्ठ हैं। लेकिन यह एक समाधान नहीं है। – EvanBlack

+0

के धन्यवाद ....... –

उत्तर

0

की कोशिश की है, setOffscreenPageLimit() या तो छोड़ दिया है या वर्तमान पृष्ठ के अधिकार के लिए रखने के लिए पृष्ठों की संख्या निर्धारित करता है।

FragmentPagerAdapter से docs:

प्रत्येक पृष्ठ उपयोगकर्ता का दौरा स्मृति में रखा जाएगा, का टुकड़ा हालांकि इसके दृश्य पदानुक्रम को नष्ट कर दिया जा सकता है जब दिखाई नहीं। यह परिणामस्वरूप स्मृति की एक महत्वपूर्ण मात्रा का उपयोग कर सकते हैं क्योंकि उदाहरण मनमाने ढंग से राज्य की स्थिति में हो सकते हैं।

मुझे लगता है कि वेबव्यूज़ मेमोरी में काफी बड़ा हो सकता है, इसलिए एंड्रॉइड इसे फिर से जरूरी होने तक इसका निपटारा करता है।

संबंधित मुद्दे