1

我的服务有任何登录具有功能广播接收器不显示来自的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

+0

你混淆了“表现”注册接收器类,以申报及动态注册的接收器。 @布鲁诺的答案显示了如何在代码\中注册接收者。你可以在这里找到有关我在类似问题上的答案的更多信息 - http://stackoverflow.com/a/23154946/383414 –

回答

2

没有注册的广播接收器?

你可以做到这一点编程

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> 
+0

我添加到清单文件。仍然没有变化。不显示接收日志 –

+0

我已更改,我的清单,主要活动和服务在我的文章的编辑中更新。请确认并说明是否有任何问题。 –