- ไวยากรณ์:
<receiver android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </receiver>
- มีอยู่ใน
<application>- อาจมีข้อมูลต่อไปนี้
<intent-filter><meta-data><property>- คำอธิบาย:
- ประกาศ Broadcast Receiver ซึ่งเป็น
BroadcastReceiverคลาสย่อยเป็นหนึ่งในคอมโพเนนต์ของแอปพลิเคชัน Broadcast Receiver ช่วยให้แอปพลิเคชันรับ Intent ที่ระบบหรือแอปพลิเคชันอื่นๆ ออกอากาศได้ แม้ว่าคอมโพเนนต์อื่นๆ ของแอปพลิเคชันจะไม่ได้ทำงานอยู่ก็ตามการทำให้ระบบรู้จัก Broadcast Receiver ทำได้ 2 วิธี วิธีหนึ่งคือการประกาศในไฟล์ Manifest ด้วยองค์ประกอบนี้ อีกวิธีคือการสร้าง ตัวรับสัญญาณแบบไดนามิกในโค้ดและลงทะเบียนด้วยเมธอด
Context.registerReceiver()หรือเวอร์ชันที่โอเวอร์โหลดดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างตัวรับสัญญาณแบบไดนามิกได้ที่คำอธิบาย
BroadcastReceiverคลาสหากตัวรับนี้จัดการการออกอากาศที่ไม่ใช่ของระบบ ให้ระบุค่าสำหรับ
android:exportedตั้งค่านี้เป็น"true"หากต้องการให้ตัวรับสัญญาณรับ การออกอากาศของตัวรับสัญญาณจากแอปพลิเคชันอื่นๆ หรือ"false"หากต้องการให้ตัวรับสัญญาณรับ การออกอากาศจากแอปของคุณเองเท่านั้นคุณไม่ต้องนำแอตทริบิวต์
android:permissionออกหากได้ประกาศไว้แล้วคำเตือน: จำกัดจำนวน Broadcast Receiver ที่คุณตั้งค่าในแอป การมี Broadcast Receiver มากเกินไปอาจ ส่งผลต่อประสิทธิภาพของแอปและระยะเวลาการใช้งานแบตเตอรี่ของอุปกรณ์ของผู้ใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ API ที่คุณใช้แทนคลาส
BroadcastReceiverเพื่อกำหนดเวลาการทำงานเบื้องหลังได้ที่การเพิ่มประสิทธิภาพเบื้องหลัง - แอตทริบิวต์
android:directBootAwareตัวรับสัญญาณออกอากาศเป็น Direct-Boot aware หรือไม่ นั่นคือสามารถทำงานได้ก่อนที่ผู้ใช้จะปลดล็อกอุปกรณ์หรือไม่
หมายเหตุ: ในระหว่างDirect Boot ตัวรับสัญญาณออกอากาศในแอปพลิเคชันจะเข้าถึงได้เฉพาะข้อมูลที่จัดเก็บไว้ในพื้นที่เก็บข้อมูลที่อุปกรณ์ป้องกัน
ค่าเริ่มต้นคือ
"false"android:enabled- ระบบจะสร้างอินสแตนซ์ของ Broadcast Receiver ได้หรือไม่ โดยจะ
"true"หากทำได้ และ"false"หากทำไม่ได้ ค่าเริ่มต้น คือ"true"องค์ประกอบ
<application>มีแอตทริบิวต์enabledของตัวเองซึ่งใช้กับคอมโพเนนต์แอปพลิเคชันทั้งหมด รวมถึง Broadcast Receiver แอตทริบิวต์<application>และ<receiver>ต้องเป็น"true"ทั้งคู่จึงจะเปิดใช้ Broadcast Receiver ได้ หากเป็น"false"ระบบจะปิดใช้และสร้างอินสแตนซ์ไม่ได้ android:exported- Broadcast Receiver รับข้อความจากแหล่งที่มาที่ไม่ใช่ระบบภายนอกแอปพลิเคชันได้หรือไม่
"true"หากทำได้ และ"false"หากทำไม่ได้ หากเป็น"false"Broadcast Receiver จะได้รับเฉพาะข้อความที่ระบบส่ง คอมโพเนนต์ของแอปพลิเคชันเดียวกัน หรือแอปพลิเคชันที่มีรหัสผู้ใช้เดียวกันหากไม่ได้ระบุ ค่าเริ่มต้นจะขึ้นอยู่กับว่า Broadcast Receiver มีตัวกรอง Intent หรือไม่ หากตัวรับมีตัวกรอง Intent อย่างน้อย 1 รายการ ค่าเริ่มต้นจะเป็น
"true"ไม่เช่นนั้น ค่าเริ่มต้นจะเป็น"false"แอตทริบิวต์นี้ไม่ใช่เพียงวิธีเดียวในการจำกัดการเปิดเผยภายนอกของ Broadcast Receiver นอกจากนี้ คุณยังใช้สิทธิ์เพื่อจำกัดเอนทิตีภายนอกที่ส่งข้อความได้ด้วย ดูแอตทริบิวต์
permission android:icon- ไอคอนที่แสดงถึง Broadcast Receiver แอตทริบิวต์นี้ตั้งค่า
เป็นการอ้างอิงไปยังทรัพยากรที่วาดได้ซึ่งมีคำจำกัดความของรูปภาพ
หากไม่ได้ตั้งค่าไว้ ระบบจะใช้ไอคอนที่ระบุสำหรับแอปพลิเคชันโดยรวมแทน ดูแอตทริบิวต์
iconขององค์ประกอบ<application>ไอคอนของ Broadcast Receiver ไม่ว่าจะตั้งค่าที่นี่หรือโดยองค์ประกอบ
<application>ก็จะเป็น ไอคอนเริ่มต้นสำหรับตัวกรอง Intent ของ Receiver ทั้งหมดด้วย ดูแอตทริบิวต์iconขององค์ประกอบ<intent-filter> android:label- ป้ายกำกับที่ผู้ใช้อ่านได้สำหรับ Broadcast Receiver หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ ระบบจะใช้ป้ายกำกับที่ตั้งค่าไว้สำหรับแอปพลิเคชันโดยรวมแทน ดูแอตทริบิวต์
labelขององค์ประกอบ<application>ป้ายกำกับของ Broadcast Receiver ไม่ว่าจะตั้งค่าที่นี่หรือโดยองค์ประกอบ
<application>ก็เป็นป้ายกำกับเริ่มต้นสำหรับตัวกรอง Intent ทั้งหมดของ Receiver ด้วย ดูแอตทริบิวต์labelขององค์ประกอบ<intent-filter>ป้ายกำกับจะตั้งค่าเป็นข้อมูลอ้างอิงไปยังทรัพยากรสตริง เพื่อให้ แปลเป็นภาษาท้องถิ่นได้เหมือนสตริงอื่นๆ ในอินเทอร์เฟซผู้ใช้ อย่างไรก็ตาม เพื่อความสะดวกในขณะที่คุณกำลังพัฒนาแอปพลิเคชัน คุณยังตั้งค่าเป็นสตริงดิบได้ด้วย
android:name- ชื่อของคลาสที่ใช้ตัวรับสัญญาณออกอากาศ ซึ่งเป็นคลาสย่อยของ
BroadcastReceiverนี่คือชื่อคลาสที่สมบูรณ์ในตัวเอง เช่น"com.example.project.ReportReceiver"อย่างไรก็ตาม ในรูปแบบย่อ หากอักขระแรกของชื่อเป็นจุด เช่น".ReportReceiver"ระบบจะต่อท้ายชื่อแพ็กเกจที่ระบุใน องค์ประกอบ<manifest>เมื่อเผยแพร่แอปพลิเคชันแล้ว อย่า เปลี่ยนชื่อนี้ เว้นแต่คุณจะตั้งค่า
android:exported="false"ไม่มีค่าเริ่มต้น ต้องระบุชื่อ
android:permission- ชื่อสิทธิ์ที่ผู้แพร่ภาพต้องมีเพื่อส่งข้อความไปยัง Broadcast Receiver
หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ ชุดสิทธิ์ที่ตั้งค่าโดยแอตทริบิวต์
<application>ขององค์ประกอบpermissionจะมีผล กับ BroadcastReceiver หากไม่ได้ตั้งค่าแอตทริบิวต์ใดไว้ ตัวรับ จะไม่ได้รับการปกป้องด้วยสิทธิ์ดูข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์ได้ที่ส่วนสิทธิ์ในภาพรวมของไฟล์ Manifest ของแอปและเคล็ดลับด้านความปลอดภัย
android:process- ชื่อของกระบวนการที่ Broadcast Receiver ทำงาน
โดยปกติแล้ว คอมโพเนนต์ทั้งหมดของแอปพลิเคชันจะทำงานในกระบวนการเริ่มต้นที่สร้างขึ้น
สำหรับแอปพลิเคชัน โดยมีชื่อเหมือนกับแพ็กเกจแอปพลิเคชัน
แอตทริบิวต์
processขององค์ประกอบ<application>สามารถตั้งค่า เริ่มต้นที่แตกต่างกันสำหรับคอมโพเนนต์ทั้งหมดได้ แต่คอมโพเนนต์แต่ละรายการจะลบล้างค่าเริ่มต้นได้ ด้วยแอตทริบิวต์processของตัวเอง ซึ่งช่วยให้คุณกระจาย แอปพลิเคชันไปยังหลายกระบวนการได้หากชื่อที่กำหนดให้กับแอตทริบิวต์นี้ขึ้นต้นด้วยโคลอน (
:) ระบบจะสร้างกระบวนการใหม่ ซึ่งเป็นกระบวนการส่วนตัวของแอปพลิเคชันเมื่อจำเป็น และ Broadcast Receiver จะทำงานในกระบวนการนั้นหากชื่อกระบวนการขึ้นต้นด้วยอักขระพิมพ์เล็ก ตัวรับจะทำงานในกระบวนการส่วนกลางที่มีชื่อนั้น โดยมีเงื่อนไขว่าตัวรับมีสิทธิ์ทำเช่นนั้น ซึ่งจะช่วยให้คอมโพเนนต์ในแอปพลิเคชันต่างๆ แชร์กระบวนการได้ ทำให้ลดการใช้ทรัพยากรลง
- เปิดตัวใน
- ระดับ API 1
<ตัวรับ>
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2026-07-01 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2026-07-01 UTC"],[],[]]