Junior — Middle
Come si può aumentare la durata del BroadcastReceiver in Android?
sobes.tech AI
Risposta dell'AI
BroadcastReceiver in Android funziona di default per un tempo molto breve — finché viene eseguito il metodo onReceive(). Per aumentare la durata, si può:
- Avviare un servizio in background (Service) da onReceive(), che esegua operazioni prolungate.
- Usare goAsync() all’interno di onReceive() per ottenere un PendingResult e completare l’elaborazione più tardi, chiamando finish() al termine.
Esempio con goAsync():
public void onReceive(Context context, Intent intent) {
final PendingResult pendingResult = goAsync();
new Thread(() -> {
// Operazione lunga
// ...
pendingResult.finish();
}).start();
}
In questo modo, si può evitare il limite di tempo in onReceive() e eseguire task più lunghi.