एक टुकड़े में आपको गतिविधि के संदर्भ की आवश्यकता होने पर या वैश्विक चर 'mActivity' बनाने के लिए हर बार getActivity() को कॉल करना चाहिए और इसका उपयोग करना चाहिए।एंड्रॉइड और ओओपी - ग्लैग वेरिएबल्स बनाम फ्रैगमेंट्स में विरासत प्राप्तकर्ता
असल में आपके पास पहले से ही एक गतिविधि ऑब्जेक्ट (getActivity()) है और ऐसा लगता है कि वैश्विक (एमएक्टिविटी) बनाना कोड डुप्लिकेशन है और एक अतिरिक्त संदर्भ है जो अनियंत्रित है। लेकिन भी getActivity() का उपयोग करके हर जगह भयभीत दिखता है और हर बार कई विधि कॉल (प्रदर्शन?) करने में गलत लगता है।
// Pseudo Android
public class MyFragent extends Fragment {
private Activity mActivity; // Global
public void onActivityCreated(Bundle b){
mActivity = getActivity();
}
public void onClick(View v){
randomMethodTakingActivity(mActivity);
// or
randomMethodTakingActivity(getActivity());
}
private void someMethod(){
randomMethodTakingActivity(mActivity);
// or
randomMethodTakingActivity(getActivity());
}
private void anotherMethod(){
mActivity.someCallback();
// or
getActivity().someCallback();
}
}
यह getAplication() या getView() के लिए भी प्रासंगिक होगा;
मैंने Coding for Performance के माध्यम से पढ़ा है लेकिन कुछ भी प्रासंगिक नहीं देख सकता है। मुझे ओओ प्रकृति और प्रदर्शन (हालांकि शायद नगण्य) पर कुछ प्रतिक्रिया चाहिए।
अभिविन्यास परिवर्तन के लिए getActivity() के लाभ अब देख सकते हैं। क्या आपके पास getView() पर कोई राय है? , टीभ शायद अब उनके लिए संयम के लिए विधि कॉल कर देगा, इनपुट के लिए धन्यवाद। – Blundell
@ ब्लंडेल: "क्या आपके पास getView() पर कोई राय है?" - आम तौर पर, मैं अंतर्निहित तरीकों का उपयोग करता हूं जब तक कि मेरे पास अन्यथा करने के लिए स्पष्ट और वर्तमान कारण नहीं है (उदाहरण के लिए, मिलियन-पास लूप)। – CommonsWare
'अन्यथा, प्रदर्शन हिट सामग्री नहीं होनी चाहिए।' बस !! –