我想在我的应用程序中实现pub / sub,对于该服务器在特定事件中发送通知,我将对我的活动中显示的数据进行一些修改
答案 0 :(得分:3)
onMessageReceived()
不需要PendingIntent进行调用。如果您的设置正确,它将始终呼叫。此link提供应发送到FCM服务器的数据类型
使用FCM,您可以向客户端发送两种类型的消息:
通知消息,有时被视为“显示消息”。
- 醇>
数据消息,由客户端应用程序处理。
如果您希望始终触发仅使用数据消息,那么它将始终触发onMessageReceived()
。如果您尝试同时使用数据消息和通知消息,onMessageReceived()
将不会触发你的应用程序在后台。
只需执行您想要执行的任何操作,例如保存到onMessageReceived()
那么你如何发送到活动?
使用广播接收器这里是您发送广播接收器的方式,您希望将其放入onMessageReceived()
内,因此,只要您收到新通知,此代码就会帮助您将数据发送到特定活动。
Intent intent = new Intent("Use anything you like");
intent.putExtra("data","The data you receive");
sendBroadcast(intent);
在您的活动中,在onStart()
registerReceiver(broadCastReceiver,new IntentFilter("must match the intent filter parameter"));
以下是处理数据的方式
class broadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("Your data",intent.getData());
}
}
注意:您的意图过滤器参数必须与您在onMessageReceived()
如果您的应用从未收到来自FCM的数据,那么这个答案将毫无用处,因为您的问题仍然不清楚这是我能为您做的最好的。