我已經嘗試了多種方式讓單個持久定時器更新多個活動中的用戶界面,而且似乎沒有任何工作。我試過了一個AsyncTask,一個Handler和一個CountDownTimer。下面的代碼不執行第一個Log.i語句....是否有更好的方法來啓動計時器(必須從另一個類中調用)在Main(這是唯一的持久類)?Android定時器更新多個任務之間的用戶界面
public static void MainLawTimer()
{
MainActivity.lawTimer = new CountDownTimer(MainActivity.timeLeft, 1000)
{
public void onTick(long millisUntilFinished)
{
Log.i("aaa","Timer running. Time left: "+MainActivity.timeLeft);
MainActivity.timeLeft--;
if(MainActivity.timeLeft<=0)
{
//do stuff
}
else
{
//call method in another class
}
}
public void onFinish()
{ }
}.start();
}
爲了澄清我的問題:
當我運行代碼的Log.i(「AAA」,「定時運行」)語句永遠不會在日誌中表示,而CountDownTimer似乎從來沒有開始。 MainLawTimer從另一個類只(而不是同一類中調用。
「是否有更好的方式在Main(這是唯一的持久類)中啓動計時器(必須從另一個類中調用)?」。你能再詳細一點嗎? – Raghunandan
@ Rilcon42你不能從計時器線程更新UI,你需要UI線程來更新UI,並且你需要在你的代碼中啓動計時器。 – PiyushMishra
@PiyushMishra,我在我的代碼中啓動了計時器,我剛剛省略了未使用的OnFinish方法和.start,因爲我試圖僅提供基本要素....我已將它添加回上面的代碼中。 – Rilcon42