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

我已更改,我的清單,主要活動和服務在我的文章的編輯中更新。請確認並說明是否有任何問題。 –