gpt4 book ai didi

android - 如果应用程序未运行,为什么不显示抬头通知

转载 作者:搜寻专家 更新时间:2023-11-01 08:28:39 24 4
gpt4 key购买 nike

我用 fcm 实现了 Head-up Notifications。当应用程序收到 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());

}


}

最佳答案

有两种类型的 FCM 消息可用。

  1. 通知消息,有时被认为是“显示消息”。

  2. 数据消息,由客户端应用处理。

通知消息不会显示。当您的应用未运行或被终止时。

请检查以下链接,它会对您有所帮助。

https://firebase.google.com/docs/cloud-messaging/concept-options

关于android - 如果应用程序未运行,为什么不显示抬头通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42505291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com