Ich habe eine IntentService
, die für immer läuft, da ich eine unendliche while-Schleife verwende. Wenn ich jedoch meine Anwendung schließe, wird der Dienst beendet. Vielleicht irre ich mich, aber soweit ich weiß, sollte die IntentService
im Hintergrund laufen, bis sie die Aufgabe beendet.Android: IntentService wird beendet
Außerdem, wie ich unendliche While-Schleife verwende, sollte der Dienst für immer laufen. Aber klar ist das nicht was passiert.
public class TaskNotifierService extends IntentService {
public static final String TAG="TaskNotifierIS";
public TaskNotifierService(){
super(TAG);
}
@Override
protected void onHandleIntent(Intent intent) {
while(true){
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
String currentDay=null;
switch(day){
case 1:
currentDay="Sunday";
Log.i("currentDay","Current day is: "+currentDay);
break;
case 2:
currentDay="Monday";
Log.i("currentDay","Current day is: "+currentDay);
break;
case 3:
currentDay="Tuesday";
Log.i("currentDay","Current day is: "+currentDay);
break;
case 4:
currentDay="Wednesday";
Log.i("currentDay","Current day is: "+currentDay);
break;
case 5:
currentDay="Thursday";
Log.i("currentDay","Current day is: "+currentDay);
break;
case 6:
currentDay="Friday";
Log.i("currentDay","Current day is: "+currentDay);
break;
case 7:
currentDay="Saturday";
Log.i("currentDay","Current day is: "+currentDay);
break;
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Kann jemand erklären, was hier falsch läuft?
Die Antworten unten sind korrekt. Wenn Sie jedoch eine Aktion haben, die regelmäßig ausgeführt werden muss, sollten Sie sie mit 'AlarmManager' einplanen. Die Verwendung einer Endlosschleife ist eine schlechte Übung und führt zu einem Batterieverbrauch. – F43nd1r