我想在我的应用中使用 Firebase 云消息来接收通知。
当应用程序处于前台或后台时,我会收到通知,但如果应用程序被杀死,那么它将无法正常工作。我知道如果不制作即使在关闭应用程序后也能运行的服务之类的东西是不可能的,但我不知道如何实现它。
请指导我。提前谢谢。
我正在使用此类来获取通知。
public class FcmMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
String title= remoteMessage.getNotification().getTitle();
String message= remoteMessage.getNotification().getBody();
Intent intent= new Intent(this,MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent= PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder notificationBuilder= new NotificationCompat.Builder(this);
notificationBuilder.setContentTitle(title);
notificationBuilder.setContentText(message);
notificationBuilder.setAutoCancel(true);
notificationBuilder.setSmallIcon(R.mipmap.ic_launcher);
notificationBuilder.setContentIntent(pendingIntent);
NotificationManager notificationManager= (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0,notificationBuilder.build());
}
}
如果您在消息中从 Firebase 控制台发送一些数据有效负载,则当应用处于后台或已终止状态时,您将不会收到自定义通知 如果您想在应用处于终止或后台状态时收到通知,您将收到默认的 Firebase 通知 从您的服务器发送 POST 请求以 https://fcm.googleapis.com/fcm/send 此网址 在此处查看完整指南 https://firebase.google.com/docs/cloud-messaging/send-message 和消息接收检查数据
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
if (remoteMessage.getData() != null) {
Map<String, String> dataMap = remoteMessage.getData();
String title = dataMap.get("title");
String message = dataMap.get("description");
}
}
}