mio AppWidgetProvider
(che è, naturalmente, una BroadcastReceiver
) è registrato per ricevere CONNECTIVITY_CHANGE
, in modo che io possa aggiornare i widget non appena viene ripristinata rete (anche se solo se richiesto, vale a dire se un precedente mancato aggiornamento a causa della mancanza di connettività).Android N: si tratta di mancanza di CONNECTIVITY_CHANGE
Ma come stabilito here, questo non sarà più possibile in Android N. Il suggerimento è quello di utilizzare JobScheduler
, che consente di specificare che il lavoro deve essere eseguito solo quando è collegato a una rete per mezzo del metodo .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.
Tuttavia, non riesco a vedere come possa essere utilizzato per replicare il comportamento desiderato. Mi sembra che il metodo .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
causerà il lavoro non eseguito a tutti se non c'è nessuna rete al momento in cui è pianificato il lavoro, e sarà non perché il lavoro attenda pazientemente finché non c'è una rete e quindi eseguire (che è quello che mi serve).
Quindi, come mantenere il comportamento di cui ho bisogno, con Android N?
Se lo desideri, puoi anche utilizzare il dispatcher di Firebase. È compatibile con le versioni precedenti. – Embydextrous
Inoltre è possibile mantenere i lavori attraverso il riavvio del dispositivo. – Embydextrous