ฉันกำลังทำงานกับชิ้นส่วนและเจอสองสิ่ง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
ในแอปพลิเคชัน) จากนั้นดำเนินการต่อในบทช่วยสอนนี้ (วิธีใช้ประโยชน์จากFragment
s จากแพ็คเกจสนับสนุน) เอกสารบนเว็บไซต์นักพัฒนาเป็นมูลค่าการอ่านเช่นกัน
FragmentActivity
เป็นส่วนหนึ่งของห้องสมุดสนับสนุนในขณะที่Activity
เป็นชั้นเริ่มต้นของกรอบ พวกเขามีหน้าที่เทียบเท่า
คุณควรใช้FragmentActivity
และandroid.support.v4.app.Fragment
แทนที่จะเป็นค่าเริ่มต้นของแพลตฟอร์มActivity
และandroid.app.Fragment
คลาส การใช้ค่าเริ่มต้นของแพลตฟอร์มหมายความว่าคุณต้องพึ่งพาการใช้ชิ้นส่วนใดก็ตามที่ใช้ในอุปกรณ์ที่คุณใช้งานอยู่ สิ่งเหล่านี้มักจะมีอายุหลายปีและมีข้อบกพร่องที่ได้รับการแก้ไขในไลบรารีการสนับสนุน
minSdkVersion
ของไลบรารีการสนับสนุนคือ 14 ตั้งแต่รุ่น 26.xx