Service перестает работать при закрытии приложения

Ответить
vizort
Сообщения: 49
Зарегистрирован: 02 мар 2013, 22:43

Service перестает работать при закрытии приложения

Сообщение vizort » 07 апр 2014, 20:19

У меня есть простенький Service

Код: Выделить всё

public class UpdateService extends Service {
   private int seconds;
   final static String MY_ACTION = "MY_ACTION";

@Override
public void onCreate() {
    super.onCreate();
}

@Override
public void onStart(Intent intent, int startId) {
    timer.start();
}

@Override
public IBinder onBind(Intent intent) {
    return null;
}

final CountDownTimer timer = new CountDownTimer(86400000, 1000) {

    public void onTick(long millisUntilFinished) {

        Util.saveInfo(getApplicationContext(), Util.SECONDS, seconds++);

        Intent intent = new Intent();
        intent.setAction(MY_ACTION);
        sendBroadcast(intent);
    }

     public void onFinish() { }
  };
}
Когда я закрываю приложение он перестает работать
Хотя с другой стороны вроде как и работает
Screenshot.png
Screenshot.png (36.44 КБ) 3341 просмотр
Что я делаю не так?


Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Service перестает работать при закрытии приложения

Сообщение KamiSempai » 04 июн 2014, 15:41

Использование Handler и Timer не гарантирует выполнение задачи через точный промежуток времени, в том случае если приложение ни как не показывает свою деятельность на экране. Тут либо, как было предложено выше, запускать сервис Foreground либо использовать AlarmManager. AlarmManager точно сработает по часам, даже если приложение закрыто и ни один сервис не работает, а вот если экран выключен и Foreground не поможет.

Если на протяжении работы таймера, ни чего не происходит, настоятельно рекомендую посчитать время окончательного срабатывания таймера и назначить на это время AlarmManager. Поберегите заряд батареи ваших пользователей.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Saint_Byte
Сообщения: 26
Зарегистрирован: 03 мар 2013, 13:15

Re: Service перестает работать при закрытии приложения

Сообщение Saint_Byte » 05 июн 2014, 09:26

AlarmManager точно сработает по часам, даже если приложение закрыто и ни один сервис не работает, а вот если экран выключен и Foreground не поможет
Так а как плееры тогда работают? Или плееры ещё и не дают спать устройству (Wake_lock) ?

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Service перестает работать при закрытии приложения

Сообщение klblk » 05 июн 2014, 09:32

Saint_Byte писал(а):
AlarmManager точно сработает по часам, даже если приложение закрыто и ни один сервис не работает, а вот если экран выключен и Foreground не поможет
Так а как плееры тогда работают? Или плееры ещё и не дают спать устройству (Wake_lock) ?
да Wake_lock

Ответить