我有一个客户端软件(在Android上),可以监听传入消息。消息是在等待消息到来的while循环中接收的。当发现消息时,它会更新GUI。[由于在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!
}
}
标签2:现在这个线程是在每次出现消息时创建的。我怎么能只创建一个线程并不断地使用它呢?知道吗?
- 创建一个新线程
- 在线程的run()方法中创建一个新的处理程序
- 当您想在目标线程上执行某些操作时,请使用Handler的post()方法
您可以在主线程上创建一个处理程序来发布更新GUI的操作。
还可以考虑使用AsyncTask<>。