2015-09-28 10 views
5

द्वारा मार डाला जाने के बाद वेबव्यू राज्य को पुनर्स्थापित नहीं कर रहा है, मुझे इस समस्या को समझने के लिए कुछ दिनों तक परेशानी हो रही है। असल में मेरे पास Webview है जो वेबसाइट लोड करता है, पहला पृष्ठ लॉगिन होता है और सामग्री लॉगिन के बाद निम्न होती है।उपयोगकर्ता द्वारा

प्रत्येक उपयोगकर्ता सत्यापन साइट यह स्वयं के माध्यम से किया जाता है। तो उदाहरण के लिए SharedPreference में सहेजने के लिए कुछ भी नहीं है। मैं केवल इस परिदृश्य में यूआरएल का उपयोग कर रहा हूँ।

मेरे ऐप की हत्या के बाद तो onCreate, वेबव्यू पहले वाली स्थिति बहाल नहीं किया गया है इससे पहले कि यह मारा गया था।

क्योंकि savedinstancestate अशक्त आ रहा है, और यूआरएल फिर से लोड कर रहा है के बाद एप्लिकेशन मारे जाने मैं अपनी लगता है।

मेरे पास सत्र कुकीज़ और अन्य सामान हैं।

मैं सोच रहा था कि किसी के पास कुछ सुझाव है या नहीं।

पेज। मैं एंड्रॉइड में नया हूं।

उत्तर

5

के रूप में आप अपने आप को बताया के बाद से बचाया राज्य रिक्त है, तो आप संभवतः onCreate अंतिम पृष्ठ को खुला था वापस करने के लिए अपने वेब दृश्य लेने के लिए उम्मीद नहीं कर सकते। ऐसी दो चीजें हैं जिन्हें आपको करने की आवश्यकता है:

सुनिश्चित करें कि आपका लॉगिन पृष्ठ, जो आपका पहला पृष्ठ रिलीज़ सामग्री पृष्ठ पर रीडायरेक्ट करता है, जब यह पता लगाता है कि उपयोगकर्ता पहले ही लॉग इन कर चुका है। चूंकि आप पहले ही कुकीज़ का उपयोग कर रहे हैं तुच्छ है

फिर से अधिक WebView की वर्तमान यूआरएल को बचाने के लिए onPause विधि सवारी।

@Override 
protected void onPause() { 
    super.onPause(); 
    SharedPreferences prefs = context.getApplicationContext(). 
      getSharedPreferences(context.getPackageName(), Activity.MODE_PRIVATE); 
    Editor edit = prefs.edit(); 
    edit.put("lastUrl",webView.getUrl()); 
    edit.commit(); // can use edit.apply() but in this case commit is better 
} 

फिर आप इस संपत्ति को ऑनक्रेट विधि पर पढ़ सकते हैं और आवश्यकतानुसार यूआरएल लोड कर सकते हैं। वरीयता लोड परिभाषित किया गया है, तो यह है, अगर प्रवेश पृष्ठ (जो पहले सामग्री पृष्ठ रीडायरेक्ट करना चाहिए यदि पहले ही प्रवेश)

अद्यतन लोड नहीं यहाँ क्या आपके onResume नज़र आ सकते हैं। उपरोक्त() विधि पर उपरोक्त में एक पंक्ति भी जोड़ा।

@Override 
protected void onResume() { 
    super.onResume(); 
    if(webView != null) { 
     SharedPreferences prefs = context.getApplicationContext(). 
      getSharedPreferences(context.getPackageName(), Activity.MODE_PRIVATE); 
     String s = prefs.getString("lastUrl",""); 
     if(!s.equals("")) { 
      webView.loadUrl(s); 
     } 
    } 
} 
+0

आप अपने जवाब के लिए बहुत बहुत धन्यवाद! इसने काम कर दिया ! –

+0

आपका स्वागत है। – e4c5

+0

कोड काम करता है, लेकिन जब भी आप किसी अन्य ऐप से वापस स्विच करते हैं या इसे फिर से खोलते हैं तो इसे वेबव्यू को फिर से लोड करता है। मैं इसे कैसे रोक सकता हूं? – sidyapa

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