गतिविधि और FragmentActivity के बीच अंतर


228

मैं टुकड़ों पर काम कर रहा था और दो चीजों के बीच आया था Activityऔर FragmentActivityजो कई बार उपयोग किए जाते हैं। मैं जानना चाहता हूं कि इन दोनों में कोई अंतर है, क्योंकि जब मैं बदल Activityगया FragmentActivity, तो इसका ऐप पर कोई प्रभाव नहीं पड़ा।

जवाबों:


316

A FragmentActivityका एक उपवर्ग है Activityजो Android समर्थन पैकेज के लिए बनाया गया था

FragmentActivityवर्ग एक जोड़े को नए तरीके Android के पुराने संस्करणों के साथ संगतता सुनिश्चित करने के लिए कहते हैं, लेकिन उस के अलावा अन्य, वहाँ वास्तव में बहुत दोनों के बीच एक अंतर का नहीं है। बस सुनिश्चित करें कि आप सभी कॉल को बदलने getLoaderManager()और getFragmentManager()करने के लिए getSupportLoaderManager()और getSupportFragmentManager()क्रमशः।


4
अरे मैंने getSupportLoaderManager () और getSupportFragmentManager () के लिए कॉल नहीं बदले .. लेकिन फिर भी यह ठीक काम कर रहा है।
रूकी

31
यही कारण है कि यह इतना खतरनाक है: पी। FragmentActivityइनहेरिट getLoaderManagerऔर getFragmentManagerविधियों से इनहेरिट करता है और Activityपरिणामस्वरूप कंपाइलर शिकायत नहीं करेगा। संभावना है कि आप गलत LoaderManagerऔर FragmentManagerकक्षाएं भी आयात कर रहे हैं । सुनिश्चित करें कि आप इन वर्गों को समर्थन पैकेज ( android.support.v4.app) से आयात कर रहे हैं , कि Android SDK ( android.app) से।
एलेक्स लॉकवुड

1
क्या हम कह सकते हैं कि यदि हम Android 2.x संस्करण के लिए टुकड़ों का उपयोग करना चाहते हैं, तो हमें उस संस्करण के लिए FragmentActivity nad का उपयोग करने की आवश्यकता है जो उन अंशों का समर्थन करता है जिन्हें हमें गतिविधि का उपयोग करने की आवश्यकता है।
रॉकी

55
मुझे लगता है कि आप जो कह रहे हैं वह सही है। लेकिन सिर्फ 100% स्पष्ट होने के लिए ... उपयोग करेंActivity यदि आप कर रहे हैं तो उपयोग करें android.app.Fragment; FragmentActivityयदि आप उपयोग कर रहे हैं तो उपयोग करें android.support.v4.app.Fragment। कभी नहीं एक संलग्न android.support.v4.app.Fragmentएक करने के लिए android.app.Activity, के रूप में इस का कारण होगा एक अपवाद फेंका जाए।
एलेक्स लॉकवुड

13
पहले इस ट्यूटोरियल को आज़माएं ( Fragmentsएप्लिकेशन में कैसे उपयोग करें )। फिर, इस ट्यूटोरियल ( Fragmentसपोर्ट पैकेज से एस का उपयोग कैसे करें) पर जारी रखें । प्रलेखन डेवलपर्स साइट पर साथ ही लायक पढ़ने है।
एलेक्स लॉकवुड

4

FragmentActivityजबकि समर्थन पुस्तकालय का हिस्सा हैActivity फ्रेमवर्क का डिफ़ॉल्ट वर्ग है। वे कार्यात्मक रूप से समतुल्य हैं।

तुम हमेशा का उपयोग करना चाहिए FragmentActivityऔर android.support.v4.app.Fragmentमंच डिफ़ॉल्ट के बजाय Activityऔर android.app.Fragmentवर्गों। प्लेटफ़ॉर्म डिफॉल्ट्स का उपयोग करने का मतलब है कि आप जिस भी उपकरण में चल रहे हैं, उसके टुकड़े के उपयोग पर निर्भर हैं। ये अक्सर कई साल पुराने होते हैं, और इसमें वे कीड़े होते हैं जो समर्थन पुस्तकालय में तय किए गए हैं।


1
नोट: minSdkVersionसमर्थन पुस्तकालय 14 संस्करण 26 के बाद से है। XXX
यूजेन पिंचेक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.