Использование UDP для обновления списка объектов, которые будут выполнены

StackOverflow https://stackoverflow.com/questions/6818238

Вопрос

Мне нужно написать приложение для Android, которое может получать пакеты UDP, и для каждого из них отобразить новый объект на экране с OpenGL.

Я попробовал следующее: у моего класса рендеринга OpenGL есть ArrayList из объектов, которые отображают каждый кадр, и я создал функцию, которая добавляет новые объекты в этот список при вызове.

В моей основной деятельности я создал новую ветку для борьбы с входящими пакетами UDP. Каждый раз, когда получается новый пакет, обработчику отправляется сообщение, которое называет функцию, которая добавляет новый объект в список.

Сначала это работает, когда пакет получен, объект отображается, но если я нажимаю обратно и снова запускаю приложение, новые объекты больше не отображаются, даже если пакеты получены (я могу сказать через журнал )

Это правильный путь, но я что -то упускаю или есть лучший способ достичь ожидаемого результата?

Это было полезно?

Решение 2

Я нашел то, что вызывало проблему. Сетевой поток был проблемой. Это будет продолжать работать после того, как приложение будет закрыто и, следовательно, обновит неправильный список. Мне пришлось остановиться, когда был вызван ондестрой ().

Чтобы исправить это, я добавил некоторые флаги «остановки», чтобы сломать цикл (правдивый), но это все равно не сработало бы, поэтому хитрость заключалась в том, чтобы закрыть розетку, которая ждала данных (s.receive ()).

Другие советы

Мне удалось решить проблему. Я должен был объявить список объектов статичными, я не так уверен, почему. Похоже, что после того, как деятельность была уничтожена и перезагружена, была некоторая путаница между списком, измененным функцией «добавить», и списком визуализируемых объектов.

Было бы неплохо, если бы кто -то мог объяснить, что происходит. Спасибо!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top