Ho implementato un servizio di coda in Android che cambierà gli stati in base agli eventi di connettività di coda e wifi/dati.Efficace memorizzazione nella cache dei dati caricati su Android
I accodo le transazioni da registrare su un URL remoto. Se il dispositivo ha una connessione dati o Wi-Fi, itererà la coda e invierà i dati all'url finché la coda non sarà vuota, oppure è presente un evento di disconnessione.
Posso accedere alla mia app, abilitare la modalità aereo, generare dati, disattivare la modalità aereo e la transazione viene registrata. Nessun rallentamento, anche con migliaia di transazioni. (Stavo cercando di farlo un po ')
Inserire: bassa ricezione! La mia app rallenta enormemente quando la ricezione 3G è bassa. (Sì, tutto il caricamento avviene fuori dal thread dell'interfaccia utente.) Sembra che la causa di questo rallentamento abbia a che fare con il post sul server che impiega molto tempo ad accadere ea volte fallire.
La mia domanda è, come posso risolvere questo? Verifica la qualità del segnale? Sondare un indirizzo conosciuto? In che modo altre app, come Gmail, risolvono questo problema? Questo deve essere uno scenario comune!
È sicuramente necessario disporre di un piano per casi come "la connettività è presente, ma il server è lento, irraggiungibile." Due idee: 1. mantenere la cache, definire la dimensione massima con cui si sta bene (che significa: quando è pieno non ti importa se gli eventi vengono gettati via). 2. Misurare il tempo richiesto da una richiesta. Se il tempo è maggiore del tempo necessario per generare eventi, sospendere più a lungo per caricare la connessione o il server. – vasquez