我想在發生特殊事件時開始計算我的服務時間。我想在工作線程中做到這一點。
甚至使用CountDownTimer()
可以爲我做這個。
問題是,當我在IntentService
類的OnHandleIntent()
中使用此方法時,我收到一個錯誤:
java.lang.IllegalStateException: Handler (android.os.CountDownTimer$1) {235e78c} sending message to a Handler on a dead thread
。使用Android中的工作線程計算服務時間
這是在時間到達目的地時計算時間和做特殊工作的最佳方式嗎?如果不是我可以如何?如果是,如何解決?謝謝。
我的服務代碼是:
import android.app.IntentService;
import android.content.Context;
import android.content.Intent;
import android.os.CountDownTimer;
import android.os.Environment;
import android.util.Log;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class TimeService extends IntentService {
public TimeService(){
super("");
}
@Override
protected void onHandleIntent(Intent intent) {
new CountDownTimer(20000,1000){
@Override
public void onTick(long millisUntilFinished) {
System.out.println("Time remaining: "+millisUntilFinished/1000);
}
@Override
public void onFinish() {
System.out.println("done");
}
}.start();
}
}
請添加代碼,這樣任何一個可以觀察到什麼錯 – USKMobility
@USKMobility必要的代碼加入到質疑。 –
而不是'CountDownTimer'這是用於另一個目的使用'AlarmManager' – pskink