BroadcastReceiver ไม่แสดงบันทึกใด ๆ จาก onReceive

บริการของฉันมีฟังก์ชั่น

broadcaster = LocalBroadcastManager.getInstance(this);
public void sendResult(String message) {
    Log.d("Service", "sendResult "+message);
    Intent intent = new Intent();
    intent.setAction("com.myandroid.app.messagechanged");
    if(message != null)
        intent.putExtra("message", message);
        broadcaster.sendBroadcast(intent);
    }

และ MainActivity มี

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("MainActivity", "Receiving Broadcast");
        Message = intent.getStringExtra("message");
        Log.d("MainActivity", "Received : "+Message);
        tvMessage.setText(Message);                       
    }
};

และ Manifest มี

<receiver android:name="com.myandroid.app.receiver" >
   <intent-filter>
      <action android:name="com.myandroid.app.messagechanged" />
   </intent-filter>
</receiver>

รหัสนี้ไม่ได้อัปเดต TextView tvMessage

บันทึก:

Service   sendResult MyMessage

เฉพาะบันทึกนี้เท่านั้นที่แสดงเกี่ยวกับฟังก์ชันเหล่านี้ ไม่แสดงบันทึกใดๆ จาก onReceive

ชื่อแพ็คเกจของฉันคือ com.myandroid.app

ชื่อบริการคือ AppService

ชื่อกิจกรรมคือ MainActivity


comment
คุณกำลังสร้างความสับสนให้กับคลาสผู้รับที่ลงทะเบียนอย่างชัดแจ้ง โดยมีการประกาศและลงทะเบียนผู้รับแบบไดนามิก คำตอบของ @ Bruno แสดงวิธีการลงทะเบียนผู้รับในรหัส\. คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับคำตอบที่ฉันตั้งไว้สำหรับคำถามที่คล้ายกันได้ที่นี่ - stackoverflow.com/a/23154946/383414   -  person Richard Le Mesurier    schedule 28.04.2014
comment
วิธีแก้ไขปัญหานี้อาจช่วยคุณได้: stackoverflow.com/questions/32464151/   -  person Saeid    schedule 26.08.2020


คำตอบ (1)


คุณได้ลงทะเบียนเครื่องรับการออกอากาศแล้วหรือยัง?

คุณสามารถทำได้โดยทางโปรแกรม

IntentFilter filter = new IntentFilter("SOME_ACTION");
filter.addCategory("SOME_CATEGORY");
registerReceiver(YOUR_BROADCAST, filter);

หรืออยู่ในรายการ

<receiver android:name="YOUR_BROADCAST_CLASS" >
    <intent-filter>
        <action android:name="SOME_ACTION" />
        <action android:name="SOME_CATEGORY" />
    </intent-filter>
</receiver>
person Bruno Santos    schedule 25.04.2014
comment
ฉันเพิ่มลงในไฟล์รายการ ยังไม่มีการเปลี่ยนแปลง ไม่แสดงบันทึกการรับ - person Sushin PS; 28.04.2014
comment
ฉันมีการเปลี่ยนแปลงและรายการกิจกรรมหลักและบริการของฉันได้รับการอัปเดตในการแก้ไขโพสต์ของฉัน โปรดตรวจสอบและแจ้งหากมีข้อผิดพลาดเกิดขึ้น - person Sushin PS; 28.04.2014