postDelayed () в Сервисе

Я пытаюсь перезапустить службу из себя через несколько раз. Мой код выглядит так (внутриonStartCommand(...))

Looper.prepare();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(BackgroundService.this, BackgroundService.class);
                startService(intent);
            }
        }, 3 * 60000);

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

UPD: я обнаружил, что он фактически перезапускает службу, но не в заданное время (может занять до 30 минут вместо 3). Итак, теперь вопрос заключается в том, как заставить его перезапустить, следовательно,

Ответы на вопрос(3)

Ваш ответ на вопрос