Junior — Middle
84
Каким образом можно увеличить продолжительность работы 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() и выполнять задачи дольше.