ฉันคิดว่ามีหลายสิ่งหลายอย่างที่มีเอกสารไม่ดีในไซต์ SDK นี่เป็นหนึ่งในนั้น การอ้างสิทธิ์ที่ฉันจะทำคือดูเหมือนว่าจะเป็นการดีกว่าหากคุณเริ่มต้นใช้บริบทของแอปพลิเคชันและใช้บริบทของกิจกรรมเมื่อคุณต้องการจริงๆเท่านั้น ที่เดียวที่ฉันเคยเห็นว่าคุณต้องการบริบทของกิจกรรมนั้นมีไว้สำหรับกล่องโต้ตอบความคืบหน้า SBERG412 อ้างว่าคุณต้องใช้บริบทกิจกรรมสำหรับข้อความขนมปังปิ้ง แต่เอกสาร Android จะแสดงบริบทแอปพลิเคชันที่ใช้อย่างชัดเจน ฉันใช้บริบทแอปพลิเคชันสำหรับขนมปังปิ้งเสมอเนื่องจากตัวอย่างของ Google นี้ หากทำผิด Google จะส่งลูกบอลที่นี่
ต่อไปนี้เป็นสิ่งที่ควรพิจารณาและตรวจทาน:
สำหรับข้อความของขนมปังปิ้ง Google Dev Guide ใช้บริบทของแอปพลิเคชันและพูดอย่างชัดเจนว่าจะใช้:
Toast Notifications
ในส่วนข้อความโต้ตอบของคู่มือ Dev คุณจะเห็นว่า AlertDialog.Builder ใช้บริบทของแอปพลิเคชันจากนั้นแถบความคืบหน้าจะใช้บริบทของกิจกรรม นี้ไม่ได้อธิบายโดย Google
โต้ตอบ
ดูเหมือนว่าเหตุผลที่ดีในการใช้บริบทของแอปพลิเคชันคือเมื่อคุณต้องการจัดการการเปลี่ยนแปลงการกำหนดค่าเช่นการเปลี่ยนทิศทางและคุณต้องการเก็บรักษาวัตถุที่ต้องการบริบทเช่น Views หากคุณดูที่นี่: การเปลี่ยนแปลงเวลารัน
มีความระมัดระวังเกี่ยวกับการใช้บริบทของกิจกรรมซึ่งสามารถสร้างการรั่วไหลได้ สิ่งนี้สามารถหลีกเลี่ยงได้ด้วยบริบทแอปพลิเคชันที่มีมุมมองที่จะรักษาไว้ (อย่างน้อยก็คือความเข้าใจของฉัน) ในแอพที่ฉันเขียนฉันตั้งใจจะใช้บริบทแอปพลิเคชันเนื่องจากฉันพยายามเก็บมุมมองและสิ่งอื่น ๆ เกี่ยวกับการเปลี่ยนแปลงการวางแนวและฉันยังต้องการให้กิจกรรมถูกทำลาย ดังนั้นฉันต้องใช้บริบทของแอพเพื่อไม่ให้หน่วยความจำรั่ว (ดูที่การหลีกเลี่ยงการรั่วไหลของหน่วยความจำ)) สำหรับฉันดูเหมือนว่ามีเหตุผลที่ดีมากมายที่จะใช้บริบทของแอปพลิเคชันแทนที่จะเป็นบริบทของกิจกรรมและสำหรับฉันดูเหมือนว่าคุณจะใช้มันบ่อยกว่าบริบทของกิจกรรม นั่นคือสิ่งที่หนังสือ Android หลายเล่มที่ฉันได้ทำและดูเหมือนว่าเป็นตัวอย่าง Google ที่ฉันได้ทำ
เอกสารของ Google ทำให้ดูเหมือนว่าการใช้บริบทของแอปพลิเคชันนั้นสมบูรณ์แบบในกรณีส่วนใหญ่และในความเป็นจริงแล้วมักปรากฏขึ้นมากกว่าการใช้บริบทของกิจกรรมในตัวอย่างของพวกเขา (อย่างน้อยตัวอย่างที่ฉันเคยเห็น) หากเป็นปัญหาดังกล่าวในการใช้บริบทแอปพลิเคชัน Google จำเป็นต้องให้ความสำคัญกับสิ่งนี้มากขึ้น พวกเขาต้องทำให้ชัดเจนและพวกเขาจำเป็นต้องทำซ้ำตัวอย่างบางส่วน ฉันจะไม่โทษเรื่องนี้กับผู้พัฒนาที่ไม่มีประสบการณ์เนื่องจากผู้มีอำนาจ (Google) ทำให้ดูเหมือนว่าจะไม่มีปัญหาในการใช้บริบทของแอปพลิเคชัน