Autore Topic: Notifica "dispersa" :'(  (Letto 702 volte)

Offline wlf

  • Utente normale
  • ***
  • Post: 315
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Notifica "dispersa" :'(
« il: 02 Marzo 2016, 18:37:57 CET »
0
Salve raga,
in un App mi notifico con un sendBroadcast() un azione; prima di notificarmelo ho messo un Log.d che mi visualizza nel LogCat che mi sono mandato una notifica ...

Ho implementato un BroadcastReceiver che è in ascolto dell'azione che mi sono notificato ... e pure ho inserito un Log.d per visualizzare che ho ricevuto la notifica ...

Considerate che in circa 6 secondi l'app manda circa 180 notifiche, tutte andate a buon fine, "TAG Notifica inviata!", "TAG Notifica ricevuta!", il LogCat mi dice a distanza di pochi millisecondi , l'ultima però ho solo il Log.d "TAG Notifica inviata!"! :(

Quindi chiedo se è possibile che delle notifiche "si disperdano" e non giungano a destinazione ...

Ho esagerato magari a mandarmi circa 180 notifiche nello spazio di solo 6 secondi?
Considerate che ho fatto alcuni test lasciando andare la mia App per circa 30 minuti senza perdere una sola notifica, ma raramente ho verificato che mi si blocca perché la notifica viene inviata e mai ricevuta.

Cercavo quindi che qualcuno mi chiarisse questo aspetto; che affidabilità hanno queste notifiche? Quando il sistema è occupato si possono perdere? :(



Offline iClaude

  • Utente normale
  • ***
  • Post: 177
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 10
Re:Notifica "dispersa" :'(
« Risposta #1 il: 03 Marzo 2016, 16:10:21 CET »
0
180 notifiche in 6 secondi?
I Broadcast non sono pensati x aggiornamenti così frequenti.
Devi usare un altro approccio.

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Notifica "dispersa" :'(
« Risposta #2 il: 03 Marzo 2016, 16:58:08 CET »
0
Non penso che le notifiche si possano perdere.
Le notifiche sono pensate per un umano. E un umano non riuscirebbe a leggere più di una notifica ogni 2 secondi.
E se android si scorda di emettere tale evento ogni tanto, considerando alto 2 ogni secondo, allora abbandono la programmazione android

Offline wlf

  • Utente normale
  • ***
  • Post: 315
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Notifica "dispersa" :'(
« Risposta #3 il: 03 Marzo 2016, 18:43:00 CET »
0
Non penso che le notifiche si possano perdere.

Ho le prove che è successo ... anche io pensavo che non succedesse ... ma ogni tanto capita seppur raramente. :(

Citazione
Le notifiche sono pensate per un umano. E un umano non riuscirebbe a leggere più di una notifica ogni 2 secondi.

Forse ho usato il termine errato, io parlavo di "notifiche" inviate al BroadcastReceiver tramite il sendBroadcast(), non le notifiche che devono leggere gli umani ... ;)

Citazione
E se android si scorda di emettere tale evento ogni tanto, considerando alto 2 ogni secondo, allora abbandono la programmazione android

Più che emetterlo nel mio caso è il BroadcastReceiver che non l'ha ricevuto. :(
In questo caso sarebbero 30 al secondo ... e se non mi arriva una notifica al BroadcastReceiver si interrompe il flusso perché non invia la successiva e così via ...

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Notifica "dispersa" :'(
« Risposta #4 il: 03 Marzo 2016, 18:57:05 CET »
0
USA eventbus. Permette migliaia di eventi mi sembra

Offline wlf

  • Utente normale
  • ***
  • Post: 315
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Notifica "dispersa" :'(
« Risposta #5 il: 03 Marzo 2016, 20:42:23 CET »
0
Serve una libreria?

Ora ho integrato nella stessa classe la callBack che mi avvertiva tramite il BroadcastReceiver ...

Ti ringrazio, ma non cercavo una soluzione ma una conferma che possa accadere, che non me lo sono sognato! ;)

Offline iClaude

  • Utente normale
  • ***
  • Post: 177
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 10
Re:Notifica "dispersa" :'(
« Risposta #6 il: 03 Marzo 2016, 20:51:10 CET »
0
Serve una libreria?

Ora ho integrato nella stessa classe la callBack che mi avvertiva tramite il BroadcastReceiver ...

Ti ringrazio, ma non cercavo una soluzione ma una conferma che possa accadere, che non me lo sono sognato! ;)

I broadcast normali vengono inviati in modo asincrono a tutti i BroadcastReceiver configurati per la ricezione. L'invio avviene una-tantum, per cui se il quel momento il BroadcastReceiver non è disponibile, ad esempio perchè "ingolfato" dai broadcast precedenti, il broadcast ovviamente viene perso.
Cmq ripeto che per update così frequenti i broadcast non sono assolutamente indicati.

Offline wlf

  • Utente normale
  • ***
  • Post: 315
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Notifica "dispersa" :'(
« Risposta #7 il: 04 Marzo 2016, 17:23:38 CET »
0
Ovviamente un update così frequente non lo governo io direttamente, è legato alle vicissitudini del bluetooth ... mi faccio notificare tutte le volte che ricevo o invio qualcosa ... e visto che accade frequentemente il numero di notifiche è esagerato per questo motivo.
Ho bypassato il problema smantellando la classe esterna che gestiva il bluetooth ed includendola all'interno nella classe dove veniva notificato ...