Junior — Middle
Kaip galima padidinti BroadcastReceiver veikimo trukmę Android?
sobes.tech AI
Atsakymas iš AI
Android BroadcastReceiver pagal nutylėjimą veikia labai trumpą laiką — kol vykdomas onReceive() metodas. Norint padidinti veikimo laiką, galima:
- Paleisti foninę paslaugą (Service) iš onReceive(), kuri atliks ilgalaikes operacijas.
- Naudoti goAsync() viduje onReceive(), kad gauti PendingResult ir užbaigti apdorojimą vėliau, iškviečiant finish() po darbo pabaigos.
Pavyzdys su goAsync():
public void onReceive(Context context, Intent intent) {
final PendingResult pendingResult = goAsync();
new Thread(() -> {
// Ilgalaikė operacija
// ...
pendingResult.finish();
}).start();
}
Taip galima išvengti laiko apribojimo onReceive() ir atlikti užduotis ilgiau.