2

My service has function

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);
    }

and MainActivity has

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);                       
    }
};

and Manifest has

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

This code is not updating TextView tvMessage.

Log:

Service   sendResult MyMessage

Only this log is showing regarding these functions. Not showing any Log from onReceive.

My package name is com.myandroid.app

Service name is AppService

Activity name is MainActivity

Cœur
  • 37,241
  • 25
  • 195
  • 267
Sushin PS
  • 93
  • 1
  • 11
  • You are confusing "manifest" registered receiver classes, with receivers declared & registered dynamically. @Bruno's answer shows how to register the receiver in code\. You can find more info on an answer I placed to a similar question here - http://stackoverflow.com/a/23154946/383414 – Richard Le Mesurier Apr 28 '14 at 11:22
  • This solution might help you: https://stackoverflow.com/questions/32464151/logs-logcat-not-working-in-broadcastreceiver/63597388#63597388 – Saeid Aug 26 '20 at 12:22

1 Answers1

2

Did you register the Broadcast receiver?

You can do it programmatically

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

Or in the manifest

<receiver android:name="YOUR_BROADCAST_CLASS" >
    <intent-filter>
        <action android:name="SOME_ACTION" />
        <action android:name="SOME_CATEGORY" />
    </intent-filter>
</receiver>
Boris
  • 805
  • 1
  • 8
  • 20
Bruno Santos
  • 46
  • 1
  • 3