我用fcm实现了抬头通知。 当应用程序收到fcm通知时,如果我的应用程序正在运行,则会在屏幕上显示平视通知。这很好。
但如果我的应用程序是后台或被杀,则不会显示抬头通知。 我怎么解决这个问题? (也许我认为如果我的应用程序在收到fcm通知时正在运行,MyFirebaseMessagingService工作正常。但如果我的应用程序是后台或被杀,MyFirebaseMessagingService类不能工作)
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Map<String, String> data = remoteMessage.getData();
sendNotification(remoteMessage);
}
private void sendNotification(RemoteMessage message) {
Intent push = new Intent(this, SplashActivity.class);
push.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TASK
| Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent fullScreenPendingIntent = PendingIntent.getActivity(this, 0, push, PendingIntent.FLAG_CANCEL_CURRENT);
NotificationCompat.Builder builder = (NotificationCompat.Builder) new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setWhen(System.currentTimeMillis())
.setContentTitle("test")
.setContentText(message.getNotification().getBody())
.setCategory(NotificationCompat.CATEGORY_MESSAGE)
.setVibrate(new long[] {0})
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setContentIntent(fullScreenPendingIntent);
NotificationManager nm =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(1, builder.build());
}
}
答案 0 :(得分:2)
有两种类型的FCM消息可用。
通知消息,有时被视为&#34;显示消息。&#34;
数据消息,由客户端应用程序处理。
通知消息不会显示。当您的应用未运行或被杀时。
请查看以下链接,它会对您有帮助。
https://firebase.google.com/docs/cloud-messaging/concept-options