当应用不是 运行 时发出加载资源

Issue loading resources when app is not running

我在 android 通知上发现了关于小图标的类似问题,但是 Google 不会给我任何关于以下问题的提示:

简而言之,当应用未打开时,我的通知不会显示颜色和图标,但当应用在屏幕上可见时它会完美运行。

出现通知时,应用 运行 处于后台:

出现通知时应用在屏幕上可见:

对我来说,该服务似乎无法使用其当前上下文加载某些资源。目前我正在使用自己的 python 服务器调用 firebase REST Api 来发送通知。

虽然标题和 Text-Body 是通过通知自身的负载直接发送的,但图标和颜色由应用程序选择。

这是在服务中构建通知的方式。

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);

这是最终显示通知的片段:

final NotificationManagerCompat mNotificationManager = NotificationManagerCompat.from(context);
final boolean notificationsEnabled = mNotificationManager.areNotificationsEnabled();
if (notificationsEnabled) {
    mNotificationManager.notify(notifyID, mBuilder.build());
}

感谢您的帮助!

您可以尝试:

1.更新到9.8.0版本,查看解决方案

2. 发送推送通知时设置图标和颜色。

示例JSON:

{
     "notification" : {
      "body" : "My amazing body!",
      "title" : "My amazing title",
      "icon" : "ic_logo",
      "sound" : "default",
      "color" : "#D63A49"
    },
    "registration_ids": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"]
}

ic_logo是资源名

3. 发送 data 通知。这样即使应用程序处于后台

也会调用onMessageReceived(RemoteMessage message)方法

示例JSON:

{
    "data": {
        "my_custom_key" : "my_custom_value",
        "whatever" : "YES",
        "other_key" : true
     },
    "to": "XXXXXXX"
}