我在 Android 通知上的小图标上发现了类似的问题,但 Google 不会向我提供有关以下问题的任何提示:
简单而简短,当应用程序未打开时,我的通知不会显示颜色和图标,但当应用程序在屏幕上可见时,它会完美地工作。
出现通知时应用程序正在后台运行:
出现通知时应用程序在屏幕上可见:
对我来说,该服务似乎无法使用其当前上下文加载某些资源。目前,我正在使用自己的 python 服务器调用 firebase REST Api 来发送通知。
虽然标题和文本正文直接通过通知自己的负载发送,但图标和颜色由应用程序选择。
这就是在服务中构建通知的方式。
final Context context = this.getApplicationContext();
final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setDefaults(Notification.DEFAULT_SOUND)
.setContentTitle(notification.getTitle())
.setContentText(notification.getBody())
.setColor(ContextCompat.getColor(context, R.color.notification))
.setSmallIcon(R.drawable.ic_local_shipping_white_24dp);
这是最终显示通知的 fragment :
final NotificationManagerCompat mNotificationManager = NotificationManagerCompat.from(context);
final boolean notificationsEnabled = mNotificationManager.areNotificationsEnabled();
if (notificationsEnabled) {
mNotificationManager.notify(notifyID, mBuilder.build());
}
感谢您的帮助!
最佳答案
您可以尝试:
1.更新至版本9.8.0并检查THIS解决方案
2. 设置发送推送通知时的图标和颜色。
示例 JSON:
{
"notification" : {
"body" : "My amazing body!",
"title" : "My amazing title",
"icon" : "ic_logo",
"sound" : "default",
"color" : "#D63A49"
},
"registration_ids": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"]
}
ic_logo是资源名称
3.发送数据
通知。这样,即使应用程序处于后台,也会调用 onMessageReceived(RemoteMessage message)
方法
示例 JSON:
{
"data": {
"my_custom_key" : "my_custom_value",
"whatever" : "YES",
"other_key" : true
},
"to": "XXXXXXX"
}
关于android - 应用未运行时加载资源的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40931053/