Ich möchte Count-Zeit in meinem Dienst starten, wenn ein besonderes Ereignis aufgetreten ist. Und ich möchte das in Worker Thread tun.
sogar Verwendung CountDownTimer()
kann dies für mich tun.
Problem ist hier, dass, wenn ich diese Methode in OnHandleIntent()
Klasse IntentService
verwenden, erhalte ich einen Fehler:
java.lang.IllegalStateException: Handler (android.os.CountDownTimer$1) {235e78c} sending message to a Handler on a dead thread
.Zähle mal Dienst mit Worker-Thread in Android
Ist dies der beste Weg Zeit zu zählen und besondere Arbeit zu leisten, wenn die Zeit am Ziel ankommt? wenn nicht wie ich kann? wenn es ist, wie lösen? Vielen Dank.
Mein Service-Code ist:
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();
}
}
bitte Codes hinzufügen, so dass jeder kann beobachten, was falsch läuft – USKMobility
@USKMobility notwendigen Codes zu hinterfragen hinzugefügt. –
anstelle von 'CountDownTimer', die für andere Zwecke verwendet wird, verwenden' AlarmManager' – pskink