Я хочу начать отсчет времени в моей службе, когда произошло специальное событие. И я хочу сделать это в рабочем потоке.
даже использование CountDownTimer()
может сделать это для меня.
Проблема заключается в том, что, когда я использую этот метод в OnHandleIntent()
класса IntentService
, я получаю сообщение об ошибке:
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