Хронометр в виджете домашнего экрана - неверный формат обратного отсчета
У меня есть виджет на главном экране, который имеет один хронометр в качестве элемента RemoteViews. Мне нужен этот хронометр для отсчета времени в будущем. Хронометр работает, но я заметил странное время форматирования на некоторых устройствах. Например, если осталось 10 минут и 5 секунд, у меня есть следующие выводы:
Huawei Mate 10 Lite (Android Oreo - API 26)-10:05
Huawei G7, с леденцом на палочке (API 22)00:-605
- общее оставшееся время здесь отображается в виде количества секунд.
Мой вопрос: есть ли способ, которым я могу предоставить свое форматирование, чтобы результат был одинаковым на всех устройствах.
ПРИМЕЧАНИЕ: мне это нужно для хронометра в виджете рабочего стола, а не внутри действия или фрагмента.
Изменить: Виджет обновляется из AlarmManager. На BroadcastReceiver у меня есть следующий код для обновления виджета.
protected void updateCountdownTimer(RemoteViews remoteViews, int index) {
Calendar calendar = Calendar.getInstance();
List<Time> timeList;
if (index == -1) {
calendar.add(Calendar.DATE, 1);
TimesProvider.getProvider().setCurrentDate(calendar);
index = 0;
}
timeList = TimesProvider.getProvider().getTimes();
Time time = timeList.get(index);
calendar.set(Calendar.HOUR_OF_DAY, time.getHour());
calendar.set(Calendar.MINUTE, time.getMinute());
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
remoteViews.setChronometer(R.id.chronometer, SystemClock.elapsedRealtime() + calendar.getTimeInMillis() - System.currentTimeMillis(), null, true);
remoteViews.setTextColor(R.id.chronometer, Color.CYAN);
}