我正在尝试通过新的 Firebase 推送通知服务向我的用户发送一些数据。
我正在添加一些带有“消息文本”-“dbupdate”的“键值”自定义数据项,以检测它是要向用户显示的更新消息还是普通推送通知。
在我的接收器中,我检查是否有自定义数据并运行更新,如果为真。如果不是这种情况,我会在短信中显示正常通知。
它仅在我的应用程序打开时才有效。如果应用程序关闭,通知仍然显示,我的 if 检查甚至没有运行,
一些代码:
public class PushMessageService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Map<String,String> data = remoteMessage.getData();
String link = data.get("link");
String name = data.get("name");
if (link!=null) {
Log.d("link",link);
Log.d("name",name);
UpdateHelper.Go(this, link, name);
}
else {
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_shop_white_24dp)
.setAutoCancel(true)
.setContentTitle(remoteMessage.getNotification().getTitle())
.setContentText(remoteMessage.getNotification().getBody());
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(5, mBuilder.build());
}
}
}
此处的示例通知
为什么呢?即使应用程序关闭,我还能做些什么来运行我的代码?