0

RemoteViews アイテムとして 1 つのクロノメーターを持つホーム画面ウィジェットがあります。将来のある時点からカウントダウンするには、このクロノメーターが必要です。クロノメーターは機能しますが、一部のデバイスで時刻の形式がおかしいことに気付きました。たとえば、残り 10 分 5 秒の場合、次の出力が得られます。

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

Lollipop を搭載した 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);
    }
4

0 に答える 0