Fino a kitkat del ricevitore di stato del ricevitore Android funziona perfettamente. In Android lolipop dello stato del telefono trasmette il ricevitore inviando più trasmissioni. C'è qualcosa di cambiato in Android Lolipop.Android Lollipop invia Multiple BroadcastReceivers per le modifiche dello stato del telefono
5
A
risposta
0
A Lollipop ogni evento di modifica dello stato del telefono sembra venire due volte. In questo articolo si descrive il problema e offre una soluzione semplice per esso: http://mmarvick.github.io/blog/blog/lollipop-multiple-broadcastreceiver-call-state/
0
mi sento di raccomandare questa soluzione:
public void onReceive(Context context, Intent intent) {
long subId = intent.getLongExtra("subscription", Long.MIN_VALUE);
if(subId < Integer.MAX_VALUE) {
// hurray, this is called only once on all operating system versions!
}
}
funziona sia su 4.xe 5.xe una dovrebbe essere compatibile in avanti. Per maggiori dettagli si rimanda al mio blog:
http://www.skoumal.net/en/android-duplicated-phone-state-broadcast-on-lollipop/
ho notato che è un extra inviato con la sottoscrizione intento chiamato, e sembra essere 1 o 9223372036854775807. La mia ipotesi è, un bug? – gerfmarquez
il numero è Long.MAX_VALUE. Hai trovato perché questo sta accadendo? – Muzikant
Ho postato un bug report per questo problema: https://code.google.com/p/android/issues/detail?id=161508 – Muzikant