我正在
Android中实施FCM通知,但根据应用状态(背景与前景)通知有何不同?
我正在使用FCM API与邮递员发送通知,这是通知结构:
{ "notification": {
"title": "Notification title","body": "Notification message","sound": "default","color": "#53c4bc","click_action": "MY_BOOK","icon": "ic_launcher"
},"data": {
"main_picture": "URL_OF_THE_IMAGE"
},"to" : "USER_FCM_TOKEN"
}
要渲染的图像取自data.main_picture.
我已经实现了我自己的FirebaseMessagingService,它使通知在前台状态下完美显示.通知代码是下一个:
NotificationCompat.BigPictureStyle notiStyle = new NotificationCompat.BigPictureStyle();
notiStyle.setSummaryText(messageBody);
notiStyle.bigPicture(picture);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(bigIcon)
.setContentTitle(title)
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent)
.setStyle(notiStyle); code here
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0,notificationBuilder.build());
但是,在后台,服务甚至不执行.在AndroidManifest.xml中,Firebase服务的声明如下:
android:name=".MyFirebaseMessagingService">
android:name=".MyFirebaseInstanceIDService">
我的问题不是LargeIcon或SmallIcon,而是显示大图.
感谢您的支持.