AndroidViewModel एप्लिकेशन संदर्भ प्रदान करता है
यदि आपको अपने Viewmodel के अंदर संदर्भ का उपयोग करने की आवश्यकता है, तो आपको AndroidViewModel (AVM) का उपयोग करना चाहिए, क्योंकि इसमें एप्लिकेशन संदर्भ होता है। संदर्भ कॉल को पुनः प्राप्त करने के लिए getApplication()
, अन्यथा नियमित ViewModel (VM) का उपयोग करें।
AndroidViewModel में एप्लिकेशन संदर्भ है । हम सभी जानते हैं कि स्थैतिक संदर्भ उदाहरण होना बुरी बात है क्योंकि इससे मेमोरी लीक हो सकती है !! हालाँकि, स्थैतिक अनुप्रयोग इंस्टेंस होना उतना बुरा नहीं है जितना आप सोच सकते हैं क्योंकि रनिंग एप्लिकेशन में केवल एक एप्लीकेशन इंस्टेंस है।
इसलिए, किसी विशिष्ट वर्ग में एप्लिकेशन का उपयोग करना और उसका उपयोग करना सामान्य समस्या नहीं है। लेकिन, यदि कोई एप्लिकेशन उदाहरण उन्हें संदर्भित करता है, तो यह संदर्भ चक्र समस्या के कारण एक समस्या है।
एप्लिकेशन इंस्टेंस के बारे में भी देखें
यूनिट परीक्षण के लिए AndroidViewModel समस्याग्रस्त
एवीएम आवेदन संदर्भ प्रदान करता है जो इकाई परीक्षण के लिए समस्याग्रस्त है। यूनिट परीक्षणों को संदर्भ के रूप में किसी भी एंड्रॉइड जीवनचक्र से संबंधित नहीं होना चाहिए।