อะไรคือความแตกต่างระหว่าง:
getApplicationContext()
getBasecontext()
getApplication()
getParent()
คุณสามารถอธิบายโดยละเอียดด้วยตัวอย่างง่ายๆได้หรือไม่?
อะไรคือความแตกต่างระหว่าง:
getApplicationContext()
getBasecontext()
getApplication()
getParent()
คุณสามารถอธิบายโดยละเอียดด้วยตัวอย่างง่ายๆได้หรือไม่?
คำตอบ:
getApplicationContext()
บริบทของแอปพลิเคชันเชื่อมโยงกับแอปพลิเคชันและจะเหมือนเดิมตลอดวงจรชีวิต
getBasecontext()
ไม่ควรใช้เพียงใช้Context
แทนสิ่งที่เกี่ยวข้องกับกิจกรรมและสามารถทำลายได้เมื่อกิจกรรมถูกทำลาย
getApplicationContext ()บริบทของแอปพลิเคชันเชื่อมโยงกับ Applicaition และจะเหมือนเดิมตลอดวงจรชีวิต
ไม่ควรใช้getBasecontext ()เพียงแค่ใช้ Context แทนซึ่งเกี่ยวข้องกับกิจกรรมและอาจถูกทำลายเมื่อกิจกรรมถูกทำลาย
getApplication ()พร้อมใช้งานสำหรับกิจกรรมและบริการเท่านั้น แม้ว่าในการใช้งาน Android Activity and Service ในปัจจุบันgetApplication ()และgetApplicationContext () จะส่งคืนอ็อบเจ็กต์เดียวกัน แต่ก็ไม่มีการรับประกันว่าจะเป็นเช่นนั้นเสมอไป (ตัวอย่างเช่นในการใช้งานของผู้ให้บริการบางราย) ดังนั้นหากคุณต้องการคลาสแอปพลิเคชันที่คุณลงทะเบียนไว้ในไฟล์ Manifest คุณไม่ควรเรียกgetApplicationContext ()และส่งไปยังแอปพลิเคชันของคุณเนื่องจากอาจไม่ใช่อินสแตนซ์ของแอปพลิเคชัน (ซึ่งคุณเห็นได้ชัดจากกรอบการทดสอบ)
getParent ()ส่งคืนอ็อบเจ็กต์ของกิจกรรมหากมุมมองปัจจุบันเป็นเด็กกล่าวอีกนัยหนึ่งส่งคืนอ็อบเจ็กต์กิจกรรมที่โฮสต์มุมมองเด็กเมื่อถูกเรียกภายในเด็ก