У меня есть служба, которую я хочу выполнять каждую минуту в фоновом режиме. Он не должен выполнять задачу, когда телефон спит, только когда пользователь активно его использует. Я пытаюсь сделать это с помощью IntentService, который настроен следующим образом:
public class CounterService extends IntentService{
public CounterService() {
super("CounterService");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent,flags,startId);
}
@Override
protected void onHandleIntent(Intent intent) {
Toast.makeText(this, "onhandleintent", Toast.LENGTH_SHORT).show();
while(true)
{
//one minute is 60*1000
try {
Thread.sleep(5 * 1000);
Toast.makeText(getApplicationContext(), "getting app count", Toast.LENGTH_LONG).show();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Сейчас, чтобы получить функциональность, я просто хочу, чтобы она отображала тост каждые 5 секунд, я поменяю его на одну минуту позже. Если у меня есть комментарий while(true)
, то отображается сообщение "onhandleintent". Однако, если у меня есть следующий запуск кода, ни один из них не отображается. Как я могу это исправить?