У меня есть IntentService
, который работает вечно, поскольку я использую бесконечный цикл while. Однако, когда я закрываю приложение, служба прекращается. Возможно, я ошибаюсь, но, насколько мне известно, IntentService
должен бежать в фоновом режиме, пока он не завершит задачу.Android: IntentService завершается
Кроме того, поскольку я использую бесконечный цикл while, служба должна работать вечно. Но ясно, что это не то, что происходит.
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();
}
}
}
}
Может кто-нибудь объяснить, что здесь происходит не так?
Ответы приведены ниже. Однако, если у вас есть действие, которое необходимо выполнить периодически, вы должны запланировать его с помощью 'AlarmManager'. Использование петли infinte - это плохая практика и приведет к отказу батареи. – F43nd1r