Android处理程序-线程间通信

| 如何在Android中使用Handlers在两个线程之间实现双向通信? 我有一个生成线程B的服务A。从B到A的通信非常容易,只是将Handler传递给B的构造函数,但是如何从A到B呢? B没有自动为其分配任何Looper。 有没有人得到答案?     
已邀请:
这是一篇很好的文章,解释了使用处理程序的线程和通信。同样,同一博客上有许多关于Android中各种线程结构的文章     
要克服为刚创建的线程(但可能尚未初始化)获取处理程序的问题,请参阅如何创建Looper线程,然后立即向其发送消息?     
在新线程中调用“ 0”,将为您创建该线程的Looper。然后,您可以创建一个处理程序以传递回另一个线程。 也就是说,在调用
Looper.prepare()
之后,语句
Handler h = new Handler()
将在新线程的Looper上创建一个Handler。 http://developer.android.com/reference/android/os/Looper.html     
您可以按照以下步骤实现双向通信。 1)创建一个扩展Thread Class的工作线程。 2)使用此工作线程初始化Handler。 3)在其run()方法中,通过以下方式为此线程准备循环程序:Looper.prepare()用于将消息队列绑定到该线程,以及Looper.loop()创建一个循环,该循环将从消息队列的Message和Runnable中读取消息这个线程。 4)使用post()和runMessage()和Messages()从UI线程处理程序向该工作线程处理程序发送Messgae和Runnables。 请参考本教程:使用Looper处理后台工作     

要回复问题请先登录注册