我的服務有任何登錄具有功能廣播接收器不顯示來自的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
你混淆了「表現」註冊接收器類,以申報及動態註冊的接收器。 @布魯諾的答案顯示瞭如何在代碼\中註冊接收者。你可以在這裏找到有關我在類似問題上的答案的更多信息 - http://stackoverflow.com/a/23154946/383414 –