डिज़ाइन प्रश्न मूल रूप से - PreferenceActivity
होने पर इसे OnSharedPreferenceChangeListener
लागू करना चाहिए या किसी को इस कार्यक्षमता को किसी अन्य वर्ग में परिभाषित करना चाहिए - एक आंतरिक कक्षा में कहें? क्या कोई कारण है कि कोई अन्य दृष्टिकोण पर एक को पसंद करेगा?एंड्रॉइड: ऑनशेयर प्रीफरेंस चेंजलिस्ट को परिभाषित/पंजीकृत किया जाना चाहिए
एक श्रोता को कहां पंजीकृत करना चाहिए? मेरा मतलब है the docs और सामान्य ज्ञान क्रमश: onResume/onPause
में पंजीकरण/पंजीकरण रद्द करने के लिए निर्देशित है लेकिन azillionregistrationsonCreate
में मुझे आश्चर्य है कि मुझे कुछ याद आ रहा है या नहीं।
इसके अलावा मैं निश्चित नहीं हूं कि पंजीकरण रद्द करने में विफलता (इसलिए here उदाहरण के लिए अपंजीकरण को onStop
कहा जाने की गारंटी नहीं है) आवश्यक रूप से एक रिसाव की ओर ले जाएगा। तो अगर मैं उदाहरण के लिए है
class MyPref extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
SharedPreferences sharedPreferences;
// init sharedPreferences
onStart(){
sharedPreferences.registerOnSharedPreferenceChangeListener(this);
}
// no unregistration
}
इस MyPref
उदाहरण रिसाव चाहेंगे एक बार मैं अपने अन्य गतिविधियों में से एक के लिए वापस जाओ?
आखिरकार - क्या वही विचार OnPreferenceChangeListener
पर लागू होंगे?
संपादित करें: उस पर वापस आना मुझे वास्तव में OnPreferenceChangeListener
को अनधिकृत करने का कोई तरीका नहीं दिख रहा है - क्या मैं अंधा हूं ??
पंजीकरण और डी-पंजीकरण_ - क्यों? श्रोता को अपंजीकृत करने की आवश्यकता नहीं होगी? मैंने पूछा रिसाव के बारे में क्या? –
आपको इसे अपंजीकृत करने की आवश्यकता नहीं है। अगर यह ऐप को मारने का फैसला करता है तो सिस्टम बस इसे मार देगा। इसके अलावा, प्रत्येक ऐप अपने स्वयं के वीएम इंस्टेंस में चलता है, जो भी मारे जाते हैं, इसलिए आपको कुछ भी अपंजीकृत करने की आवश्यकता नहीं है और कोई रिसाव नहीं होगा - जब प्रक्रिया मर जाती है तो सभी मेमोरी जारी की जाएंगी (कर्नेल उस पर ध्यान रखेगा) । यही कारण है कि यह अनुशंसा की जाती है कि आप 'ऑन पॉज़' या 'ऑनस्टॉप' में लगातार स्टोरेज में डेटा सहेज लें। हालांकि, यह 'onPause' और 'onResume' के बीच नहीं होता है। – Shade
@Mr_and_Mrs_D, क्या आपको इस प्रश्न का बेहतर उत्तर मिला? यदि हां, तो आप इसका हर किसी के लाभ के लिए उत्तर क्यों नहीं देते? – Shade