我通过以下方式发送广播:
Intent intent = new Intent("com.usmaan.myApp.DATA_RECEIVED");
intent.putExtra("matchId", newRowId);
LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
这是包装 AsyncTask
的服务,它运行上面的广播:
<service
android:name=".services.DataService"
android:exported="false" />
在我的 Activity 中,我在 onResume
中注册了一个 Receiver
:
IntentFilter intentFilter = new IntentFilter("com.usmaan.myApp.DATA_RECEIVED");
registerReceiver(mDataReceiver, intentFilter);
`BroadReceiver 看起来像这样:
private class DataReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final long matchId = intent.getLongExtra("matchId", 0);
Toast.makeText(LaunchActivity.this, "" + matchId, Toast.LENGTH_LONG);
}
}
onReceive
永远不会被触发。我做错了什么?
最佳答案
要么在两个地方使用LocalBroadcastManager
(sendBroadcast()
和registerReceiver()
),要么不使用LocalBroadcastManager
在所有。现在,你有一对不匹配的。
关于android - BroadcastReceiver - onReceive 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23461836/