Уведомления об износе Android всегда впереди - PullRequest
0 голосов
/ 30 мая 2018

У меня есть служба переднего плана с уведомлением, при обновлении этого уведомления на устройстве Wear, если пользователь находится на циферблате, уведомление всегда выводится на фронт, имея более одного обновления уведомления, после чего они постоянно борются заscreen.

Происходит на ОС Android Wear от Google - Версия 1.2;ОС Android - версия 8.0.0

On Wear OS - версия 2.12.0;Android OS - Версия 7.1.1 работает правильно

Я обновляю эти уведомления, используя NotificationManagerCompat.notify(), а не NotificationManager.notify(), как сказано в документах, и я сохраняю ссылку на NotificationCompat.Builder, созданную наМетод createNotification и использование его в методе updateNotification

Использование RemoteViews вместо обновления contentText У меня тот же результат, единственное, что работает, это использование .setUsesChronometer(true), но это использует RemoteViews, поэтому должен быть способобновить уведомление, не делая его всплывающим

Создать метод уведомления:

protected void showNotification(String name, String activityId) {
    Intent notificationIntent = activityIntent(activityId);
    notificationIntent.setAction(MAIN_ACTION);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);

    NotificationCompat.WearableExtender extender = new NotificationCompat.WearableExtender();

    notificationBuilder = buildBaseNotification(name, NOTIFICATION_CHANNEL_ID)
            .extend(extender)
            .setContentIntent(pendingIntent)
            .setOngoing(true)
            .setOnlyAlertOnce(true)
            .setLocalOnly(true)
            .addAction(wearableNotificationPauseAction());

    startForeground(NOTIFICATION_ID, notificationBuilder.build());
}

Обновить метод уведомления:

private void updateNotificationTimer(DataModel data) {
    notificationBuilder.setContentText(data.getSomethingRelevant());

    notificationManagerCompat.notify(NOTIFICATION_ID, notificationBuilder.build());
}

Ошибка в формате GIF

...