android - BroadcastReceiver - onReceive 未被调用

标签 android service broadcastreceiver intentfilter

我通过以下方式发送广播:

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/

相关文章:

android - Android中两个进程如何共享相同的代码?

Android:TableLayout 行未通过 XML 居中

c# - 如何使用 Visual Studio 2010 将 Windows 控制台应用程序 C# 项目更改为 Windows 服务?

java - 如何在 android 中使用后台服务触发 wifi 状态更改?

java - BroadcastReceiver的 "onReceive"方法从未被调用

Android:是否导出了上下文注册的广播接收器?

android - RecyclerView 在 SoftKeyboard 可见时隐藏 Toolbar 和布局

android - 可以为多语言应用程序使用外部字体(ttf 文件)吗?

windows - 通过命令行设置 Windows 服务的 'Enable actions for stops with errors' 复选框

android - 无法将带有 PendingIntent 的 Bundle 发送到广播接收器,数据丢失