หากคุณพูดคุยเกี่ยวกับActivity
, AppcompactActivity
, ActionBarActivity
ฯลฯ ฯลฯ ..
เราจำเป็นต้องพูดถึงคลาสฐานที่พวกมันกำลังขยายก่อนอื่นเราต้องเข้าใจลำดับชั้นของคลาสซุปเปอร์
ทุกสิ่งเริ่มต้นจากบริบทซึ่งเป็นคลาสสุดสำหรับคลาสเหล่านี้ทั้งหมด
บริบทเป็นคลาสนามธรรมที่มีการใช้งานโดยระบบ Android อนุญาตให้เข้าถึงทรัพยากรและคลาสเฉพาะของแอปพลิเคชันรวมถึงการเรียกใช้สำหรับการดำเนินการระดับแอปพลิเคชันเช่นการเปิดตัวกิจกรรมการแพร่ภาพและรับความตั้งใจ ฯลฯ
Context
ตามด้วยหรือขยายโดย ContextWrapper
ContextWrapperเป็นชั้นซึ่งขยายบริบทระดับที่เพียงได้รับมอบหมายทุกสายที่จะบริบทอื่น สามารถ subclassed เพื่อปรับเปลี่ยนพฤติกรรมโดยไม่ต้องเปลี่ยนบริบทเดิม
ตอนนี้เราไปถึง Activity
กิจกรรมเป็นชั้นซึ่งขยายContextThemeWrapperว่าเป็นหนึ่งในสิ่งที่มุ่งเน้นให้ผู้ใช้สามารถทำ กิจกรรมเกือบทั้งหมดโต้ตอบกับผู้ใช้ดังนั้นคลาสกิจกรรมจะดูแลการสร้างหน้าต่างให้คุณ
ด้านล่างคลาสจะถูก จำกัด ให้ขยาย แต่จะขยายโดยตัวสืบทอดภายในและให้การสนับสนุน Api ที่เฉพาะเจาะจง
SupportActivityเป็นชั้นซึ่งขยายกิจกรรมที่เป็นชั้นฐานสำหรับการเขียนฟังก์ชั่นการทำงานร่วมกันร่วมกัน
BaseFragmentActivityApi14เป็นชั้นซึ่งขยายSupportActivity
ที่เป็นชั้นฐานมันถูก จำกัด ชั้น แต่มันถูกขยายโดย
BaseFragmentActivityApi16เพื่อสนับสนุนการทำงานของV14
BaseFragmentActivityApi16เป็นชั้นซึ่งขยาย
BaseFragmentActivityApi14ที่เป็นชั้นฐานสำหรับ {@code
FragmentActivity } เพื่อให้สามารถใช้v16 APIs แต่มันก็เป็นคลาสที่ จำกัด แต่มันถูกขยายโดย FragmentActivity เพื่อรองรับการทำงานของ V16
ตอนนี้ FragmentActivty
FragmentActivityเป็นชั้นซึ่งขยาย
BaseFragmentActivityApi16และต้องการที่จะใช้การสนับสนุนตามส่วนและพับ APIs
เมื่อใช้คลาสนี้ซึ่งตรงข้ามกับการสนับสนุนแฟรกเมนต์และตัวโหลดเดอร์ในตัวของแพลตฟอร์มใหม่คุณต้องใช้getSupportFragmentManager()
และgetSupportLoaderManager()
เมธอดตามลำดับเพื่อเข้าถึงคุณลักษณะเหล่านั้น
ActionBarActivityเป็นส่วนหนึ่งของ Support Library ไลบรารีการสนับสนุนถูกใช้เพื่อส่งมอบคุณลักษณะที่ใหม่กว่าบนแพลตฟอร์มที่เก่ากว่า ตัวอย่างเช่นActionBarเปิดตัวใน API 11 และเป็นส่วนหนึ่งของกิจกรรมโดยค่าเริ่มต้น (ขึ้นอยู่กับธีมจริง) ในทางตรงกันข้ามไม่มีActionBarบนแพลตฟอร์มเก่า ดังนั้นไลบรารีสนับสนุนจึงเพิ่มคลาสลูกของกิจกรรม ( ActionBarActivity ) ที่มีฟังก์ชั่นและActionBar ของ UI
ในปี 2558 ActionBarActivityเลิกใช้แล้วในการแก้ไข 22.1.0 ของ Support Library ควรใช้AppCompatActivityแทน
AppcompactActivityเป็นชั้นซึ่งขยาย
FragmentActivityที่เป็นชั้นฐานสำหรับกิจกรรมที่ใช้คุณลักษณะบาร์ห้องสมุดการสนับสนุนการดำเนินการ
คุณสามารถเพิ่มActionBarให้กับกิจกรรมของคุณเมื่อรันบน API ระดับ 7 หรือสูงกว่าโดยขยายคลาสนี้สำหรับกิจกรรมของคุณและตั้งค่าธีมของกิจกรรมเป็นTheme.AppCompat
หรือธีมที่คล้ายกัน
ผมหมายถึงทั้งสองหนึ่ง , สอง
FragmentActivity
IES คุณเป็นโฮสต์Fragment
ของ สำหรับ Android เวอร์ชันใหม่กว่านั้นActivity
คลาสได้รับการอัพเดตเพื่อโฮสต์โดยตรง เพื่อรองรับรุ่นเก่าที่FragmentActivity
ถูกนำมาใช้