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