我從具體時間開始計時錶有問題。 有一個Date對象我想從我的計時錶開始:如何從Date對象設置Android Chronometer基準時間?
Date d = new Date(); //now, just for example
chronometer.setBase(d.getTime()); //long value of d
Log.d("Date: " , "d.getTime() time is [" + d.getTime() +"]");
Log.d("Chron: " , "chronometer.getBase() is [" + chronometer.getBase() +"]");
//let's print out elapsedRealtime from official sample
Log.d("Chron: " , "SystemClock.elapsedRealtime() is [" + SystemClock.elapsedRealtime() +"]");
輸出:
06-02 13:35:23.025: D/Date:(928): d.getTime() time is [1338644123032]
06-02 13:35:23.037: D/Chron:(928): chronometer.getBase() is [1338644123032]
06-02 13:35:23.037: D/Chron:(928): SystemClock.elapsedRealtime() is [11624388]
其實,爲什麼這個很長一段時間differes(11624388和1338644123032)的值?
當我開始我的天文臺從基地
chronometer.setBase(SystemClock.elapsedRealtime());
- 它總是工作正常(「00:00」和上升)
但是,當我嘗試設置從過去的日期之日起(FE昨天):
chronometer.setBase(yesterday.getTime());
- 它顯示 「00:0(」 和改變每秒最新的char 「)」, 「*」, 「/」 等
你能告訴我如何設置天文臺基地日期對象?
感謝馬克。我的目標是創建一個數字時鐘,顯示兩個活動(存儲在數據庫中的時間記錄)之間的持續時間。你能爲此建議最佳實踐嗎? – Vitalliuss
@Vitalliuss:如果您的開始和結束時間都固定在數據庫中,那麼只需使用'TextView',因爲您的值不會改變。如果你的開始時間在數據庫中是固定的,並且你從那裏開始計算,那麼你需要創建你自己的'Chronometer'等價物,它在'System.currentTimeMillis()'時間基準中開始時間,而不是'elapsedRealtime() '。由於['Chronometer'不是一個很長的類](https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/Chronometer.java),克隆它並讓你自己應該是相當容易。 – CommonsWare
將嘗試爲我的項目重寫天文臺。非常感謝! – Vitalliuss