2011-06-29 16 views
69

गतिविधि और संदर्भ समान हैं, या क्या अंतर हैं?गतिविधि और संदर्भ के बीच क्या अंतर है?

मुझे एक गतिविधि कब पास करनी चाहिए, और जब कोई संदर्भ हो?

+0

एक सवाल पूछने से पहले जवाब के लिए Stackoverflow खोज करें: http://stackoverflow.com/questions/5454332/is-one-activity-one-context – Egor

+0

@Egor Thnx आदमी, और असभ्य मैं इसके लिए देखभाल करेंगे .. सवाल पूछने से पहले .. क्या आप एक और सवाल में मेरी मदद कर सकते हैं .. एंड्रॉइड – Android

+0

में सभी गतिविधियों की जड़ क्या है कृपया – Egor

उत्तर

85

जहां तक ​​मैं समझता हूं: Context बेस ऑब्जेक्ट है। तो प्रत्येक ActivityApplication के समान संदर्भ से प्राप्त होता है। इसका मतलब है कि हर गतिविधि और हर आवेदन एक संदर्भ है;

developer.android.com

java.lang.Object 
    ↳ android.content.Context 
     ↳ android.content.ContextWrapper 
      ↳ android.view.ContextThemeWrapper 
       ↳ android.app.Activity 

और Application

java.lang.Object 
↳ android.content.Context 
    ↳ android.content.ContextWrapper 
     ↳ android.app.Application 

एक गतिविधि संदर्भ, रहता है जब तक आपके एप्लिकेशन जीवित है से

, जबकि गतिविधि संदर्भ आप के साथ गतिविधि मर जाता है। इसलिए यदि आपको संपूर्ण गतिविधि में संदर्भ की आवश्यकता है (यानी सिंगलटन में) तो आप एक अनुप्रयोग संदर्भ का उपयोग करने के बेहतर होंगे।

गतिविधि वर्ग "ContextThemeWrapper" तक फैली हुई है, और यह एक:

आमतौर पर एंड्रॉयड फ्रेमवर्क तरीकों जहां एक संदर्भ की उम्मीद है पर

यह आप किस

+0

हू? यदि आप संदर्भ को देखते हैं तो यह बहुत स्पष्ट है! मैं जो कहता हूं वह पूरी तरह से प्रश्न को कवर नहीं कर सकता है, लेकिन यह गलत नहीं है –

+2

वे यहां क्यों इंगित करते हैं: http://developer.android.com/reference/android/app/Activity.html कि गतिविधि से DERIVES android.view.ContextThemeWrapper जो \t एंड्रॉइड.content.ContextWrapper से प्राप्त होता है जो \t android.content.Context से प्राप्त होता है ?? क्या यह एक गलत जानकारी है? –

+2

हां, मुझे खेद है, मैंने लिंक की जांच की है, वास्तव में संदर्भ गतिविधि का एक सुपरक्लास है। वैसे भी, यह कहना बिल्कुल सही नहीं है कि गतिविधि एक संदर्भ है, गतिविधि एक और जटिल वस्तु है, जबकि संदर्भ केवल एक ब्लॉक है जो जानकारी रखता है और संसाधनों तक पहुंच प्रदान करता है। – Egor

7

पारित आप Android doc पर देख सकते हैं कोई फर्क नहीं पड़ता "ContextWrapper" से, और वह "संदर्भ" से है।

तो, हाँ, एक गतिविधि संदर्भ बढ़ाती है!

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