Junior — Middle
Как да удължим времето за работа на BroadcastReceiver в Android?
sobes.tech AI
Отговор от 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() и да изпълнявате задачи по-дълго.