Sobes.tech
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.