Как правильно очистить неиспользуемые темы? - PullRequest
0 голосов
/ 21 июня 2011

У меня есть клиентское программное обеспечение (на Android), которое прослушивает входящие сообщения. Сообщения принимаются в цикле while, который ожидает поступления сообщений. Когда сообщение найдено, оно обновляет графический интерфейс. [Так как в Android GUI не может быть обновлен напрямую] Для этого вызывается поток. Моя проблема в том, что, если сообщений много, результаты появляются во многих темах! И это создает неуклюжую ситуацию. Мой абстрактный код:

My_Client()
{
  send_text_function() // My question is not about it
  in_a_thread_Call_receive_from_others_function() [see 1]
}

receiving_funtion() // [this function is mentioned above as (see 1), called in a thread]
{
  while( waiting for new message)
  {
    >>A new message found >> create a thread to update the GUI.  // << Here is my question. see 2
  //android.os.Handler.thread type thread!
  } 
}

label 2: Теперь эта тема создается каждый раз, когда появляется сообщение. Как я могу просто создать один поток и продолжать использовать его снова и снова? Есть идеи?

1 Ответ

1 голос
/ 21 июня 2011
  1. Создать новую тему .
  2. В методе run () потока создайте новый обработчик .
  3. Если вы хотите что-то сделать в целевом потоке, используйте метод post () обработчика.

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

Также рассмотрите возможность использования AsyncTask <> .

...