我有一个主屏幕小部件,其中有一个计时器作为RemoteViews项。 我需要这款天文钟从将来的某个时间倒计时。计时器可以工作,但我注意到某些设备上有些奇怪的时间格式。 例如,如果还有10分钟5秒,我将得到以下输出:
华为Mate 10 Lite(Android Oreo-API 26)
-10:05
华为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);
}