广播接收器不工作广播管理器



我正在尝试从广播接收器发送通知。我的广播接收器不工作。

final Intent intents = new Intent("tokenReceiver");
// You can also include some extra data.
final LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(this);
intents.putExtra("token", token);
intents.setClass(this, notificationreceiver.class);
broadcastManager.sendBroadcast(intents);

通知接收器类

public class notificationreceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String token = intent.getStringExtra("token");
Log.d("token", token);
// String token=FirebaseInstanceId.getInstance().getToken();
if(token != null)
{
//send token to your server or what you want to do
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
Log.d("token",token);
Firebase reference1 = new Firebase("https://fuudful-1a15c.firebaseio.com/users/" +user.getUid());
Map<String, String> map = new HashMap<String, String>();
map.put("registrationtoken", token);
reference1.push().setValue(map);
}
}
}

清单

<receiver android:name=".notificationreceiver" android:enabled="true">
<intent-filter>
<action  android:name="tokenReceiver" />
</intent-filter>
</receiver>

有人可以指出为什么我的广播不起作用吗?

发送本地广播:

Intent i= new Intent();
i.putExtra("token", "your_token");
i.setAction("YOUR_ACTION");
LocalBroadcastManager.getInstance(context).sendBroadcast(i);

在活动中本地接收:

LocalBroadcastManager.getInstance(context).registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
}
}, new IntentFilter("YOUR_ACTION"));

本地 BroadcastReceiver不是真正的 BroadcastReceiver,实际上它是一个回调函数列表。

您必须使用 BroadcastReceiver。喜欢这个:

final Intent intents = new Intent("tokenReceiver");
// You can also include some extra data.
intents.putExtra("token", token);
intents.setClass(this, notificationreceiver.class);
sendBroadcast(intents);

最新更新