天文台设置错误的长值

时间:2011-09-15 04:49:29

标签: android android-widget

手动将长值设置为计时器。我的长值是正确的但是当我将其设置为chronometer.setBase()时,它会显示特殊字符而不是正确的时间。

    // hourInt = 4
    // minInt = 34
    // secInt = 40
    Calendar cal1 = Calendar.getInstance();
                    cal1.set(Calendar.HOUR, hourInt);
                    cal1.set(Calendar.MINUTE, minInt);
                    cal1.set(Calendar.SECOND, secInt);

                long codeBase = cal1.getTime().getTime();
                System.out.println("Code Base..."+codeBase);
 chronometer.setBase(codeBase);
                chronometer.start();

它显示特殊的字符,如00:0)和00:0 *以及所有特殊字符。 如何设置自定义长值。

1 个答案:

答案 0 :(得分:2)

我一直在努力解决这个问题,直到我通过反复试验找出答案。

Chronometer.setBase()希望millis基于elapsed real time。这意味着纪元毫秒不起作用。为了能够使用纪元毫秒,您必须像这样调用Chronometer.setBase()

chronometer.setBase(SystemClock.elapsedRealtime() -
    System.currentTimeMillis() + codeBase);

数学有效地将纪元毫秒转换为经过的实时毫秒。