主屏幕小部件中的天文钟-倒数计时格式错误

时间:2018-07-31 18:07:36

标签: android chronometer home-screen-widget

我有一个主屏幕小部件,其中有一个计时器作为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);
    }

0 个答案:

没有答案