Причины, почему служба может быть остановлена ​​в Android - PullRequest
0 голосов
/ 05 июля 2018

Если у меня есть приложение, которое не выполняет никаких действий, только один широковещательный приемник BOOT_COMPLETED и самый простой сервис. Получатель просто запустит службу, а служба запустит следующий код:

public class ScreenStateService extends Service {

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY;
    }

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

}

Как я понимаю, служба будет работать до конца времени или до тех пор, пока не произойдет один из следующих сценариев:

  1. Недостаточно памяти: системе не хватает памяти, поэтому она решает остановить службу.
  2. ANR
  3. Пользователь вручную останавливает приложение или отключает его.

В 1 и 2 система снова запустит службу, если память больше не будет заполняться или после обработки ошибки. В случае 3 он не запустится снова.

Вопрос в следующем: верно ли это? Есть ли другие случаи, когда служба была бы остановлена ​​внешним источником? Пожалуйста, укажите, будет ли он снова запускаться автоматически, если таковые имеются.

...