Sobes.tech
Junior — Middle
85

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

Companies where asked
ИннотехИннотех

Answer from AI

sobes.tech AI

BroadcastReceiver в Android по умолчанию работает очень короткое время — пока выполняется метод onReceive(). Чтобы увеличить продолжительность работы, можно:

  • Запустить фоновую службу (Service) из onReceive(), которая будет выполнять длительные операции.
  • Использовать goAsync() внутри onReceive(), чтобы получить PendingResult и завершить обработку позже, вызвав finish() после окончания работы.

Пример с goAsync():

public void onReceive(Context context, Intent intent) {
    final PendingResult pendingResult = goAsync();
    new Thread(() -> {
        // Долгая операция
        // ...
        pendingResult.finish();
    }).start();
}

Таким образом, можно избежать ограничения по времени в onReceive() и выполнять задачи дольше.