Ok, per spiegare che ho un server in Java che riceve dati da un programma C ++ su cui non ho alcun controllo. Quindi i dati vengono trasferiti su TCP / IP e il server Java lo riceve. Il volume dei dati in arrivo è enorme e arriva ad un ritmo molto veloce, immagina un terminale che stampa un sacco di linee molto velocemente .. Non ho bisogno di prenderlo tutto, per quanto posso sarebbe bello ..
Ora devo inviare i dati a un dispositivo Android e visualizzarli. Non ho idea di quale sia l'approccio migliore per questo.
Attualmente eseguo il ping del server dal mio dispositivo Android ogni 50 ms utilizzando un executor. Quindi uso un gestore per visualizzare i dati. Ho già postato una domanda con il codice qui: domanda correlata .
Ovviamente l'app Android dovrà eseguire il ping mentre l'app è in esecuzione, quindi non posso evitare lo scenario while(true)
.
Ho letto circa 100000000 modi per fare concorrenza in Android, e non so cosa scegliere per questo.
- Ho provato semplice
Threads
, erano difficili da gestire. - Ora sto eseguendo un
ExecutorService
- Ho letto anche su
ScheduledExecutorService
, ma hanno bisogno di un po 'di tempo durata giusta? La mia app può essere in esecuzione per 5 ore o 5 minuti o 5 anni. - Ho letto anche su HandlerThreads, ma non sono sicuro che siano ideali per questo scenario.
Qualsiasi aiuto sarebbe fantastico.