Come gestire l'attività del ciclo di vita che coinvolge prese in Android?
-
05-10-2019 - |
Domanda
- Ho un'attività Android che a sua volta avvia un thread.
- Nella discussione che apre una persistente connessione socket TCP.
- Quando si connette il socket per i dati del server dinamici vengono scaricati.
- Il filo invia i messaggi utilizzando Handler classe per l'attività, quando sono stati ricevuti i dati.
Ora, se l'utente capita di passare da verticale a orizzontale l'attività riceve una chiamata OnDestroy. In questo momento chiudo presa e fermare il filo.
Quando Android ha commutato la modalità orizzontale che definisce onCreate ancora una volta e devo fare una presa di ri-connessione. Inoltre, tutti i dati dell'attività esigenze ricevuto da scaricare ancora una volta perché il server non ha la capacità di conoscere ciò che è stato inviato prima, vale a dire non v'è alcuna funzionalità di "riprendere".
Quindi il problema è che c'è un sacco di dati che viene inviato nuovamente tutto il tempo in cui la modalità paesaggio è cambiato.
Quali sono le opzioni qui?
- Devo creare un servizio che gestisce il traffico verso il server presa così ho sempre avuto tutti i dati che il server ha inviato al servizio.
- o dovrei modalità orizzontale disabilitare tutti insieme, forse?
- O sarebbe la mia scommessa migliore è quello di riscrivere il mio server, che è un lavoro molto grande: -)
Tutti gli input è benvenuto: -)
/ Henrik
Soluzione
In entrambi i evitare che la vostra attività di essere riavviato ( sulla rotazione Android ) o implementare un servizio che l'applicazione gestisce. Il metodo di servizio è molto popolare con le applicazioni che ho visto, e si consente una certa flessibilità quando abbattere la connessione.