ฉันกำลังทำงานกับชิ้นส่วนและเจอสองสิ่งActivityและFragmentActivityมีการใช้หลายครั้ง ฉันต้องการทราบว่ามีความแตกต่างระหว่างสองสิ่งนี้เพราะเมื่อฉันเปลี่ยนActivityด้วยFragmentActivityจะไม่มีผลกับแอป
ฉันกำลังทำงานกับชิ้นส่วนและเจอสองสิ่งActivityและFragmentActivityมีการใช้หลายครั้ง ฉันต้องการทราบว่ามีความแตกต่างระหว่างสองสิ่งนี้เพราะเมื่อฉันเปลี่ยนActivityด้วยFragmentActivityจะไม่มีผลกับแอป
คำตอบ:
FragmentActivityเป็น subclass ของActivityที่ถูกสร้างขึ้นสำหรับแพคเกจสนับสนุน Android
FragmentActivityระดับเพิ่มวิธีการใหม่คู่เพื่อให้เข้ากันกับรุ่นเก่าของ Android แต่นอกเหนือจากนั้นมีจริงๆไม่มากของความแตกต่างระหว่างคนทั้งสอง เพียงให้แน่ใจว่าคุณเปลี่ยนสายทั้งหมดไปgetLoaderManager()และgetFragmentManager()ไปgetSupportLoaderManager()และgetSupportFragmentManager()ตามลำดับ
FragmentActivityการสืบทอดgetLoaderManagerและgetFragmentManagerวิธีการจากActivityและเป็นผลให้คอมไพเลอร์จะไม่บ่น โอกาสที่คุณจะนำเข้าที่ไม่ถูกต้องLoaderManagerและFragmentManagerชั้นเรียนด้วย ตรวจสอบให้แน่ใจว่าคุณกำลังนำเข้าคลาสเหล่านี้จากแพ็คเกจการสนับสนุน ( android.support.v4.app) ไม่ใช่ Android SDK ( android.app)
Activityถ้าคุณกำลังใช้android.app.Fragment; ใช้ถ้าคุณกำลังใช้FragmentActivity android.support.v4.app.Fragmentห้ามแนบ a android.support.v4.app.Fragmentไปยัง a android.app.Activityเนื่องจากจะทำให้เกิดข้อยกเว้น
Fragmentsในแอปพลิเคชัน) จากนั้นดำเนินการต่อในบทช่วยสอนนี้ (วิธีใช้ประโยชน์จากFragments จากแพ็คเกจสนับสนุน) เอกสารบนเว็บไซต์นักพัฒนาเป็นมูลค่าการอ่านเช่นกัน
FragmentActivityเป็นส่วนหนึ่งของห้องสมุดสนับสนุนในขณะที่Activityเป็นชั้นเริ่มต้นของกรอบ พวกเขามีหน้าที่เทียบเท่า
คุณควรใช้FragmentActivityและandroid.support.v4.app.Fragmentแทนที่จะเป็นค่าเริ่มต้นของแพลตฟอร์มActivityและandroid.app.Fragmentคลาส การใช้ค่าเริ่มต้นของแพลตฟอร์มหมายความว่าคุณต้องพึ่งพาการใช้ชิ้นส่วนใดก็ตามที่ใช้ในอุปกรณ์ที่คุณใช้งานอยู่ สิ่งเหล่านี้มักจะมีอายุหลายปีและมีข้อบกพร่องที่ได้รับการแก้ไขในไลบรารีการสนับสนุน
minSdkVersionของไลบรารีการสนับสนุนคือ 14 ตั้งแต่รุ่น 26.xx