लोकलब्रोडकास्नेगर को पदावनत किया जाता है, इसके बजाय वेधनीय पैटर्न के कार्यान्वयन का उपयोग करें।
androidx.localbroadcastmanager 1.1.0 संस्करण में पदावनत किया जा रहा है
कारण
LocalBroadcastManagerएक एप्लिकेशन-वाइड ईवेंट बस है और आपके ऐप में परत उल्लंघन का सामना करता है; कोई भी घटक किसी अन्य घटक से घटनाओं को सुन सकता है। यह सिस्टम ब्रॉडकास्टमैन के अनावश्यक उपयोग के मामले की सीमाओं को विरासत में मिला है; डेवलपर्स को इंटेंट का उपयोग करना पड़ता है, भले ही ऑब्जेक्ट केवल एक प्रक्रिया में रहते हैं और इसे कभी नहीं छोड़ते हैं। इसी कारण से, यह फीचर-वार प्रसारण प्रबंधक का पालन नहीं करता है।
ये एक भ्रमित करने वाले डेवलपर अनुभव को जोड़ते हैं।
प्रतिस्थापन
आप LocalBroadcastManagerअवलोकन पैटर्न के अन्य कार्यान्वयन के उपयोग को प्रतिस्थापित कर सकते हैं । आपके उपयोग के मामले के आधार पर, उपयुक्त विकल्प LiveDataया प्रतिक्रियाशील धाराएं हो सकती हैं।
LiveData का लाभ
आप LiveDataसिस्टम सेवाओं को लपेटने के लिए सिंगलटन पैटर्न का उपयोग करके किसी ऑब्जेक्ट का विस्तार कर सकते हैं ताकि उन्हें आपके ऐप में साझा किया जा सके। LiveDataसिस्टम सेवा एक बार, और फिर किसी भी पर्यवेक्षक कि संसाधन की जरूरत है तो बस देख सकते हैं करने के लिए वस्तु जोड़ता LiveDataवस्तु।
public class MyFragment extends Fragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
LiveData<BigDecimal> myPriceListener = ...;
myPriceListener.observe(this, price -> {
// Update the UI.
});
}
}
observe()विधि टुकड़ा है, जो का एक उदाहरण है गुजरता LifecycleOwnerपहले तर्क के रूप में,। ऐसा करने से पता चलता है कि यह पर्यवेक्षक Lifecycleस्वामी से जुड़ी वस्तु से बंधा हुआ है, जिसका अर्थ है:
यदि जीवनचक्र वस्तु सक्रिय अवस्था में नहीं है, तो मान को बदलने पर भी पर्यवेक्षक को नहीं बुलाया जाता है।
जीवनचक्र वस्तु नष्ट होने के बाद, पर्यवेक्षक स्वतः हटा दिया जाता है
तथ्य यह है कि LiveDataऑब्जेक्ट जीवनचक्र-जागरूक हैं, इसका मतलब है कि आप उन्हें कई गतिविधियों, टुकड़ों और सेवाओं के बीच साझा कर सकते हैं।