Domanda

ho bisogno di scrivere un'applicazione Android che può ricevere pacchetti UDP e, per ognuna di esse, visualizzare un nuovo oggetto sullo schermo con OpenGL.

Ho provato quanto segue: Il mio OpenGL classe renderer ha un ArrayList di oggetti che vengono rese ogni fotogramma e ho creato una funzione che aggiunge nuovi oggetti a questa lista quando viene chiamato.

Nella mia attività principale, ho creato un nuovo thread per affrontare i pacchetti UDP. Ogni volta che un nuovo pacchetto viene ricevuto, viene inviato un messaggio al gestore che chiama la funzione che aggiunge un nuovo oggetto alla lista.

Questo funziona in un primo momento, quando si riceve il pacchetto, viene visualizzato l'oggetto, ma se premo indietro e ricominciare di nuovo l'applicazione subito, i nuovi oggetti non vengono visualizzati più, anche se i pacchetti vengono ricevuti (posso dire attraverso il registro).

E 'questo il modo giusto per andare, ma mi manca qualcosa o c'è un modo migliore per ottenere il risultato atteso?

È stato utile?

Soluzione 2

Ho trovato ciò che è stato la causa del problema. Il filo rete era il problema. Sarebbe continuare l'esecuzione dopo l'applicazione è stata chiusa e quindi sarebbe aggiornare l'elenco sbagliato. Ho dovuto fare la fermata del filo quando l'OnDestroy () è stato chiamato.

Per risolvere il problema, ho aggiunto alcune bandiere "Stop" per rompere il while (true) ciclo, ma che ancora non avrebbe funzionato bene, quindi il trucco è stato quello di chiudere il socket che era in attesa per i dati (s.receive () ).

Altri suggerimenti

Sono riuscito a risolvere il problema. Ho dovuto dichiarare l'elenco di oggetti come statica, io non sono così sicuro perché. Sembra che dopo l'attività è stata distrutta e riavviato, c'era qualche confusione tra l'elenco viene modificato dalla funzione "aggiungere" e l'elenco degli oggetti sono stati resi.

Sarebbe bello se qualcuno potrebbe spiegare che cosa stava succedendo. Grazie!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top