Можно ли остановить хронометр уведомлений после того, как он достигнет определенного значения (0:00)? - PullRequest
0 голосов
/ 24 января 2020

Я использую NotificationCompat.Builder с .setUsesChronometer(true).setWhen(Instant.now().toEpochMilli() + timeDifference.toMillis());.

. Временная метка setWhen() находится в будущем, поэтому значение хронометра получило - раньше времени, и оно начинает обратный отсчет.

Когда он достигает отметки времени, он продолжает изменяться, и значение теперь является положительным (считается).

Можно ли отключить хронометр в 0:00 или остановить его, прежде чем он начнет подсчитать?

Я нашел setChronometerCountDown(true), но это API24 + (мне нужно 19), Android Studio говорит, что не может разрешить этот метод, и я думаю, что он просто удаляет знак минус при обратном отсчете, так что это делает мне не поможет.

Если ответ «нет», есть ли альтернатива?

Обновление уведомления каждую секунду может повлиять на разряд батареи, я думаю?

Я использую RemoteViews в моем Уведомлении, так что Хронометр RemoteViews может быть альтернативой, но я не могу найти способ остановить и этот.

1 Ответ

0 голосов
/ 24 января 2020

Я использовал обработчик для остановки хронометра.

mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
  @Override
  public void run() {
    mCollapsedView.setUsesChronometer(false);
    mNotificationManagerCompat.notify(1, mNotificationBuilder.build());
  }
}, timeDifference.toMillis());

Было бы полезно получить отзыв о моем решении. У меня нет большого опыта работы с Android.

...