ForegroundService на API 26+ убивают каждые 15 секунд и воссоздают - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть служба, которая имеет задачу таймера.Вот журнал ее работы (см. Секунды):

2018-12-26 11:03:40.746 D/TESTT: TEST 1__
2018-12-26 11:03:41.746 D/TESTT: TEST 1__
2018-12-26 11:03:58.009 D/TESTT: TEST 1__
2018-12-26 11:03:58.994 D/TESTT: TEST 1__
2018-12-26 11:03:59.993 D/TESTT: TEST 1__
2018-12-26 11:04:00.993 D/TESTT: TEST 1__
2018-12-26 11:04:01.994 D/TESTT: TEST 1__
2018-12-26 11:04:02.993 D/TESTT: TEST 1__
2018-12-26 11:04:03.993 D/TESTT: TEST 1__
2018-12-26 11:04:20.229 D/TESTT: TEST 1__
2018-12-26 11:04:21.228 D/TESTT: TEST 1__
2018-12-26 11:04:22.227 D/TESTT: TEST 1__
2018-12-26 11:04:23.227 D/TESTT: TEST 1__
2018-12-26 11:04:24.228 D/TESTT: TEST 1__
2018-12-26 11:04:25.228 D/TESTT: TEST 1__
2018-12-26 11:04:26.232 D/TESTT: TEST 1__
2018-12-26 11:04:43.448 D/TESTT: TEST 1__
2018-12-26 11:04:44.448 D/TESTT: TEST 1__
2018-12-26 11:04:45.448 D/TESTT: TEST 1__
2018-12-26 11:04:46.449 D/TESTT: TEST 1__
2018-12-26 11:04:47.449 D/TESTT: TEST 1__
2018-12-26 11:04:48.450 D/TESTT: TEST 1__
2018-12-26 11:04:49.450 D/TESTT: TEST 1__
2018-12-26 11:05:05.525 D/TESTT: TEST 1__
2018-12-26 11:05:06.520 D/TESTT: TEST 1__
2018-12-26 11:05:07.520 D/TESTT: TEST 1__
2018-12-26 11:05:08.521 D/TESTT: TEST 1__
2018-12-26 11:05:09.521 D/TESTT: TEST 1__
2018-12-26 11:05:10.521 D/TESTT: TEST 1__
2018-12-26 11:05:11.522 D/TESTT: TEST 1__
2018-12-26 11:05:27.594 D/TESTT: TEST 1__
2018-12-26 11:05:28.590 D/TESTT: TEST 1__
2018-12-26 11:05:29.591 D/TESTT: TEST 1__
2018-12-26 11:05:30.590 D/TESTT: TEST 1__
2018-12-26 11:05:31.590 D/TESTT: TEST 1__
2018-12-26 11:05:32.594 D/TESTT: TEST 1__
2018-12-26 11:05:33.590 D/TESTT: TEST 1__
2018-12-26 11:05:50.670 D/TESTT: TEST 1__
2018-12-26 11:05:51.667 D/TESTT: TEST 1__
2018-12-26 11:05:52.667 D/TESTT: TEST 1__
2018-12-26 11:05:53.668 D/TESTT: TEST 1__
2018-12-26 11:05:54.667 D/TESTT: TEST 1__
2018-12-26 11:05:55.667 D/TESTT: TEST 1__
2018-12-26 11:05:56.670 D/TESTT: TEST 1__

Я проверяю данные андроида и проверяю высокий приоритет моего сервиса:

Proc # 1: prcp  F/S/FGS  trm: 0 6094:com.package.app/u0a345 (fg-service)

Запуск службы startForegroundService(...,Я настроил уведомление об обслуживании как:

.setOngoing(true)
...
startForeground(NOTIFICATION_FOREGROUND, builderForegroung.build());

Также добавлен WakeLock:

public void setWakeMode(Context context, int mode) {
    Log.d("MAIN_SERVICE", "TEST: SET WAKEMODE");
    boolean wasHeld = false;
    if (wakeLock != null) {
        if (wakeLock.isHeld()) {
            wasHeld = true;
            wakeLock.release();
        }
        wakeLock = null;
    }
    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    wakeLock = pm.newWakeLock(mode | PowerManager.ON_AFTER_RELEASE, MainService.class.getName());
    wakeLock.setReferenceCounted(false);
    if (wasHeld) {
        wakeLock.acquire();
    }
}

Мне не нужен JobService и т. Д., Потому что сервис имеет простую логику.

...