Доступ к пользовательскому интерфейсу в разработке Android - PullRequest
1 голос
/ 09 сентября 2011

Я работаю над приложением для своего Android-устройства (Honeycomb) и столкнулся с проблемой, которую мне трудно решить.Приложение будет иметь большое многострочное текстовое поле в центре экрана, которое будет заполнено фоновым потоком, который обменивается данными с удаленным сервером через сокеты.

Итак, я изучил AsyncTask и егоочень близко к тому, что мне нужно, за исключением того факта, что мне нужно обновить интерфейс в doInBackground.Мне нужно поддерживать сокетное соединение во время работы программы и получения новых сообщений, заполняя их в пользовательском интерфейсе.

Пока сообщения поступают и заполняются в пользовательском интерфейсе, пользователь может отправлять сообщения.на другой сокет.

Есть предложения о том, как это сделать?Использование метода onPostExecute (...) просто не будет делать именно то, что мне нужно ... и если я использую цикл в doInBackground, у меня нет возможности обновить пользовательский интерфейс.

Я уверен, что упускаю что-то довольно очевидное.Любые предложения?

Большое спасибо !!

1 Ответ

2 голосов
/ 09 сентября 2011

AsyncTask имеет функциональность для обновления пользовательского интерфейса.Из doInBackground вызовите publishProgress, затем onProgressUpdate будет вызываться в потоке пользовательского интерфейса, чтобы позволить вам обновить его.

...