![](/img/trans.png)
[英]Android: how to use SystemClock.elapsedRealtime() to show second one by one?
[英]Odd values with timepicker and SystemClock.elapsedRealtime();
我的應用程序中有一個TimePicker
,可以選擇播放歌曲的時間,使用CountDownTimer
im時無法獲得剩余時間以正確顯示,因此,問題幾乎都發生在毫秒內我認為即時轉換正確,但我在屏幕上看到的只是完全錯誤的值。
當我只使用3600000(1hour)作為第一個參數進行測試CountDownTimer時,一切正常,但是當我將timepicker設置為0並將minutes設置為1時,就像我只希望播放1分鍾一樣,它將顯示12小時,看起來像是隨機的分鍾和秒位中的值。 tp.getCurrentHour();
當設置為零和tp.getCurrentMinute();
時返回零tp.getCurrentMinute();
返回預期的結果,似乎這部分正在發生什么,無法弄清楚是什么:
游戲時間=(小時*(60 * 60 * 1000))+(分鍾*(60 * 1000)); startime = SystemClock.elapsedRealtime();
為什么是tv2.setText("totaltest "+startime+playtime);
顯示值6000046929803 ??? 這顯然是錯誤的...
這是其余的代碼:
TimePicker tp =(TimePicker)findViewById(R.id.timePicker1);
public void onClick(View v) {
// TODO Auto-generated method stub
long hour = tp.getCurrentHour();
long min = tp.getCurrentMinute();
playtime = (hour * (60 * 60 * 1000)) + (min * (60 * 1000));
startime = SystemClock.elapsedRealtime();
tv2.setText("totaltest "+startime+playtime);
timer = new CountDownTimer(startime+playtime,1000){
@Override
public void onFinish() {
tv.setText("finished");
}
//@SuppressLint("ParserError")
@Override
public void onTick(long millisUntilFinished) {
String display = DateUtils.formatElapsedTime(millisUntilFinished/1000);
tv.setText(display);
}
}.start();
嘗試:
String display = DateUtils.formatElapsedTime(millisUntilFinished/1000);
那為您做了轉換。
和:
timer = new CountDownTimer(playtime,1000){
因為CounterDownTimer預期要運行的毫秒數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.