Junior — Middle
Cum se poate prelungi durata de funcționare a BroadcastReceiver în Android?
sobes.tech AI
Răspuns de la AI
BroadcastReceiver în Android funcționează în mod implicit foarte scurt — atâta timp cât metoda onReceive() este în execuție. Pentru a crește durata, poți:
- Să pornești un serviciu de fundal (Service) din onReceive(), care va executa operații de durată lungă.
- Să folosești goAsync() în interiorul onReceive() pentru a obține un PendingResult și a finaliza procesarea mai târziu, apelând finish() după terminare.
Exemplu cu goAsync():
public void onReceive(Context context, Intent intent) {
final PendingResult pendingResult = goAsync();
new Thread(() -> {
// Operație de durată lungă
// ...
pendingResult.finish();
}).start();
}
Astfel, poți evita limita de timp în onReceive() și poți executa sarcini mai lungi.