0

我有一个主屏幕小部件,其中有一个计时器作为 RemoteViews 项目。我需要这个计时器从未来的某个时间开始倒计时。天文台工作,但我注意到某些设备上的一些奇怪的时间格式。例如,如果还剩 10 分 5 秒,我有以下输出:

华为 Mate 10 Lite (Android Oreo - API 26)
-10:05

华为 G7,带有 Lollipop (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);
    }
4

0 回答 0