我想創建一些基於時間的事件使用天文鐘。下面的代碼正在成功顯示烤麪包機啓動5秒後的烤麪包,但我需要烤麪包機在5/10/20秒顯示。如果陳述使用onchronometerticklistener
我試過使用if(elapsedTime == 5000 || elapsedTime == 10000),但沒有烤麪包時顯示當我使用==。
任何想法?
Chronometer.OnChronometerTickListener mChronoListener = new OnChronometerTickListener() { // listens to journey timer to initiate time based events
public void onChronometerTick(Chronometer arg0) {
long elapsedTime = SystemClock.elapsedRealtime() - arg0.getBase();
if (elapsedTime > 5000)
{
Toast.makeText(SafeDrive3Activity.this, "HOUR PASSED", Toast.LENGTH_LONG).show();
}
}
};
這似乎不大可能,你的'elapsedTime'將是基於1000毫秒整除什麼設備正在做這可能會導致延遲時間'onChronometerTick(...)'被調用。換句話說,經過的時間可能是5001ms或5020ms,這取決於延遲對聽衆的呼叫的其他情況。在這種情況下,對精確值使用'=='將不起作用 - 除以1000,然後使用'== 5'或'== 10'進行比較。更好的是,除以1000,然後查看結果是否可以被5或10使用模數('%'運算符)完全整除。 – Squonk 2012-02-09 15:48:05
你是對的,謝謝! – Rob 2012-02-09 16:01:11