วัตถุประสงค์ของการใช้android.intent.category.DEFAULTในฟิลด์หมวดหมู่ของตัวกรองเจตนาคืออะไร?
วัตถุประสงค์ของการใช้android.intent.category.DEFAULTในฟิลด์หมวดหมู่ของตัวกรองเจตนาคืออะไร?
คำตอบ:
หมวดหมู่ใช้สำหรับเจตนาโดยปริยาย ดังนั้นหากกิจกรรมของคุณสามารถเริ่มต้นได้โดยเจตนาโดยปริยายเมื่อไม่มีการกำหนดหมวดหมู่เฉพาะอื่น ๆ ให้กับกิจกรรมตัวกรองเจตนาของกิจกรรมควรรวมหมวดหมู่นี้ไว้ด้วย (แม้ว่าคุณจะมีหมวดหมู่อื่น ๆ ในตัวกรองเจตนาก็ตาม) หากคุณแน่ใจว่ากิจกรรมของคุณต้องถูกเรียกด้วยหมวดหมู่อื่น ๆ อย่าใช้ค่าเริ่มต้น
การตั้งค่าหมวดหมู่เป็นค่าเริ่มต้นไม่ได้หมายความว่ากิจกรรมนี้จะถูกใช้โดยค่าเริ่มต้นเมื่อแอปของคุณเปิดตัว กิจกรรมบอกกับระบบว่า " โอ้ฉันเริ่มได้แม้ว่าหมวดหมู่ Intent ของผู้เริ่มต้นจะตั้งค่าเป็นNothingเลย! "
หมวดหมู่นี้ส่วนใหญ่ใช้สำหรับเจตนาโดยปริยาย หากกิจกรรมของคุณต้องการให้เริ่มโดยเจตนาโดยปริยายควรรวมหมวดหมู่นี้ไว้ในตัวกรอง
ฉันคิดว่าคำว่า "ค่าเริ่มต้น" ควรเข้าใจว่าเป็น " ผู้สมัครเริ่มต้น " หากการดำเนินการกับข้อมูลแก้ไขกิจกรรมหลายอย่าง Android จะนำเสนอผู้สมัครทั้งหมดให้กับผู้ใช้และผู้ใช้สามารถเลือกค่าเริ่มต้นที่ต้องการได้
อ้างอิง:
http://developer.android.com/guide/components/intents-filters.html
ดึงข้อมูลจากหน้านั้น:
Android ถือว่า Intent โดยปริยายทั้งหมดที่ส่งไปยังstartActivity () เหมือนกับว่ามีอย่างน้อยหนึ่งหมวดหมู่: "android.intent.category.DEFAULT" (ค่าคงที่ CATEGORY_DEFAULT) ดังนั้นกิจกรรมที่ยินดีรับเจตนาโดยปริยายจะต้องมี "android.intent.category.DEFAULT" ในตัวกรองความตั้งใจ (ตัวกรองที่มีการตั้งค่า "android.intent.action.MAIN" และ "android.intent.category.LAUNCHER" เป็นข้อยกเว้นโดยจะทำเครื่องหมายกิจกรรมที่เริ่มต้นงานใหม่และจะแสดงบนหน้าจอตัวเรียกใช้ซึ่งอาจรวมถึง "android.intent .category.DEFAULT "ในรายการหมวดหมู่ แต่ไม่จำเป็นต้องทำ)
จริง ๆ แล้วเพื่อให้แน่ใจว่าสามารถเรียกกิจกรรมอื่น ๆ ของคุณออกมาได้เมื่อแอปกำลังทำงาน LAUNCHER จะทำให้กิจกรรมที่มีเป็นกิจกรรมแรกที่เริ่มต้น ในการใช้ Intent เพื่อไปยังกิจกรรมอื่น ๆ พวกเขาจะต้องระบุว่าเป็นกิจกรรม "จริง" โดยใส่ DEFAULT นั่นมาจากสิ่งที่ฉันรู้ดังนั้นอย่าอ้างฉันว่ามันผิด
กิจกรรมจะต้องสนับสนุน CATEGORY_DEFAULT เพื่อให้สามารถค้นพบได้โดย Context.startActivity ()
ในการรับเจตนาโดยปริยายคุณต้องรวมหมวดหมู่ CATEGORY_DEFAULT ไว้ในตัวกรองความตั้งใจ เมธอด startActivity () และ startActivityForResult () ปฏิบัติต่อ Intent ทั้งหมดราวกับว่าพวกเขาประกาศหมวด CATEGORY_DEFAULT หากเราไม่ประกาศไว้ในตัวกรองความตั้งใจของเราจะไม่มีเจตนาโดยปริยายใดที่จะแก้ไขกิจกรรมของเราได้
ใช้เพื่อประกาศการดำเนินการบางอย่างเป็นการดำเนินการเริ่มต้น (ตามชื่อที่แนะนำ) ลองพิจารณาว่าเรามีแอป notepad (อ้างอิงจากตัวอย่าง notepad ของ Android) หน้าแรกของแอพประกอบด้วยรายการไฟล์ notepad ทั้งหมด เมื่อไฟล์ notepad หนึ่งไฟล์ถูกเลือกหนึ่งในการดำเนินการเช่นแก้ไขบันทึกการลบบันทึก ฯลฯ สามารถทำได้ แต่ฉันต้องการแก้ไขเป็นการกระทำเริ่มต้นของฉันซึ่งหมายความว่าเมื่อฉันกดปุ่มตรงกลางของปุ่มกดหน้าต่างแก้ไขควรเปิดอยู่
https://developer.android.com/guide/components/intents-filters
หากต้องการรับ Intent โดยนัยคุณต้องรวมหมวดหมู่ CATEGORY_DEFAULT ไว้ในตัวกรองความตั้งใจ เมธอด startActivity () และ startActivityForResult () ปฏิบัติต่อ Intent ทั้งหมดราวกับว่าพวกเขาประกาศหมวด CATEGORY_DEFAULT หากคุณไม่ประกาศหมวดหมู่นี้ในตัวกรองความตั้งใจของคุณจะไม่มีเจตนาโดยปริยายใดที่จะแก้ไขกิจกรรมของคุณ
ประเภท:
android.intent.category.DEFAULT
ตรงกับเจตนาโดยปริยายใด ๆ ต้องรวมหมวดหมู่นี้สำหรับกิจกรรมของคุณเพื่อรับเจตจำนงโดยปริยายใด ๆ