Как заблокировать перезапуск службы при закрытии приложения на Android?

Приложение и фоновая служба работают вместе. Но когда приложение закрывается, фоновая служба перезапускается?
Почему? Как я могу заблокировать этот перезапуск?

Когда приложение закрыто, служба должна продолжать работать, как будто ничего не произошло. Как мне это сделать?



Я использую эти коды в MainActivity:

попробоватьПодключиться();

private boolean isMyServiceRunning(Class<?> serviceClass) {
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceClass.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}
private void tryConnect(){
    if(!isMyServiceRunning(BackService.class)){
        startService(new Intent(this,BackService.class));
    }
}

Фоновая служба возвращает START_STICKY; (и я пробовал START_NOT_STICKY,START_REDELIVER_INTENT, не работает)
У меня нет onDestroy в приложении для Android.


person erginduran    schedule 19.08.2014    source источник
comment
ОС может остановить вашу службу в любое время, когда ей потребуется память. Так что лучше сделать сервис, который не будет затронут ни одной из этих проблем.   -  person Nish8900    schedule 27.08.2014


Ответы (1)


Служба и действие выполняются в одном и том же процессе? Если это так, то это может быть причиной того, что ваша служба ведет себя так (если оба используют один и тот же процесс, тогда, когда приложение умирает, процесс также умирает, вызывая перезапуск службы, если он использует START_STICKY)... Возможно, вам следует попробовать запустить службу в отдельном процессе..

person Sahar Weissman    schedule 12.03.2015