Java 推送通知前台和后台

Java 推送通知前台和后台,java,notifications,Java,Notifications,我已经创建了一个简单的通知,并使用创建和设计的一个全新图层,使用不同的颜色和通用样式对其进行了样式设置。。 一旦我通过Firebase消息触发通知,当应用程序位于前台时,它就能完美地显示我需要的确切样式 但当应用程序在后台时,它会使用它的默认样式 不管怎样,要解决这个问题吗?谢谢 通知java类文件代码- public class MyFirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingS

我已经创建了一个简单的通知,并使用创建和设计的一个全新图层,使用不同的颜色和通用样式对其进行了样式设置。。 一旦我通过Firebase消息触发通知,当应用程序位于前台时,它就能完美地显示我需要的确切样式

但当应用程序在后台时,它会使用它的默认样式

不管怎样,要解决这个问题吗?谢谢

通知java类文件代码-

public class MyFirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService {

private static final String TAG = "FirebaseMessagingServic";

public MyFirebaseMessagingService() {
}

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    String title = remoteMessage.getNotification().getTitle();
    String message = remoteMessage.getNotification().getBody();
    Log.d(TAG, "onMessageReceived: Message Received! \n " +
        "Title : " + title + "\n" +
            "Message : " + message);

    sendNotification(title, message);

}

@Override
public void onDeletedMessages() {



}

private void sendNotification(String title, String messageBody) {

    final RemoteViews remoteViews = new RemoteViews(getApplicationContext().getPackageName(), R.layout.notification_layout);

    remoteViews.setTextViewText(R.id.remoteview_notification_short_message, messageBody);
    remoteViews.setTextViewText(R.id.notificationDate, title);

    Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
            PendingIntent.FLAG_ONE_SHOT);

    String channelId = "0";
    Uri defaultSoundUri= Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getPackageName() + "/raw/notice");
    NotificationCompat.Builder notificationBuilder =
            new NotificationCompat.Builder(this, channelId)

                    .setSmallIcon(R.mipmap.minilogored)
                    .setContentIntent(pendingIntent)
                    .setContent(remoteViews)
                    .setAutoCancel(true)
                    .setSound(defaultSoundUri)
                    .setLights(0xf14d39, 1500, 2000)
                    .setPriority(NotificationCompat.PRIORITY_HIGH);


    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    // Since android Oreo notification channel is needed.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel(channelId,
                "Channel human readable title",
                NotificationManager.IMPORTANCE_DEFAULT);
        notificationManager.createNotificationChannel(channel);
    }

    notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}

}

请参阅链接,了解有关数据消息和显示消息的更多信息,以及如何在onMessageReceived()回调函数中处理


请向我们展示一些您迄今为止尝试过的代码。@对不起,我已经添加了所需的代码。