अभिविन्यास परिवर्तन पर, गतिविधि को फिर से बनाया गया है और दिनांक समय संवाद भी पुनर्निर्मित किया गया है। मैं उस समय के समय संवाद को सहेजना चाहता हूं जिसे उपयोगकर्ता द्वारा बदला गया है।अभिविन्यास परिवर्तन पर डेटाटाइम संवाद की स्थिति को कैसे बनाए रखा जाए?
डायलॉग को खारिज करने से पहले मैं डेट टाइम डायलॉग की स्थिति को बनाए रखना चाहता हूं।
नोट, मैं SaveInstanceState पर संवाद को खारिज कर सकता हूं, जहां मेरे पास बंडल उपलब्ध है। लेकिन, यह भी कहा जाता है जब गतिविधि रोके गए राज्य में जाती है, और उस स्थिति में मैं संवाद को खारिज नहीं करना चाहता हूं। इसलिए, इसे डेस्ट्रॉय विधि पर खारिज करने का फैसला किया, लेकिन मेरे पास बंडल ऑब्जेक्ट नहीं है। यही कारण है कि मुझे इस समस्या का सामना करना पड़ रहा है। क्या ऑनस्ट्राय में बंडल तक पहुंचने का कोई तरीका है? या मेरी समस्या के लिए कोई अन्य सुझाव की सराहना की जाएगी।
@Override
protected void onDestroy() {
if(dateTimeDialog !=null && dateTimeDialog.isShowing())
{
//<HERE I WANT THE STATE TO BE SAVED IN THE BUNDLE>
dateTimeDialog.dismiss();
}
super.onDestroy();
}
असल में हम अगर उपयोगकर्ता हमारे आवेदन से दूर ले जाने, और पर स्क्रीन अनलॉक आवेदन ताला और संवाद वह देख रहा है फिर से शुरू कर रहे हैं। और यदि हमने सहेजे गए इंस्टेंसस्टेट पर संवाद को खारिज कर दिया है, तो एप्लिकेशन को अनलॉक करने के बाद यह रीस्टार्ट पर शुरू होता है, प्रारंभ और फिर से शुरू करता है, जहां इनमें से कोई भी पैरामीटर के रूप में प्रदान किए गए बंडल का उदाहरण नहीं है।
इसके अलावा, हमारे पास लैंडस्केप & चित्र के लिए अलग-अलग लेआउट हैं, जिनके कारण हम मेनिफेस्ट फ़ाइल में configChanges = "ओरिएंटेशन" सेट नहीं कर सकते हैं।
'डेटपिकरडियलोग' कक्षा में 'ऑनवेस्टेंसस्टेट()' और 'ऑनस्टोर इंस्टेंसस्टेट() 'विधियां हैं। –