我的服务有功能
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 :(得分: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>