解决方案 »

  1.   

    线程中通信就不要用广播了吧  进程中通信可以用广播或者aidl
      

  2.   

    可是,这两天看到的项目都是这么做的;然后,自己分析了下,觉得一下的理由也是可以成立的;1.正常情况下我们选择handler消息机制来进行单向的线程间的通信;(工作线程向主线程发送消息)因为主线程有现成的handler,而工作线程没有现成的handler,这样的话,主线程将handler交给工作线程而让工作线程将工作的结果交给主线程;相反,工作线程中没有现成的handler(事实上是没有消息队列,也就是handler没有绑定到工作线程),那么,如果开辟的话,代码角度上是挺麻烦的(相对应广播机制来说);
    2.广播机制本身就是双向的(工作线程向主线程发送广播,主线程向工作线程发送广播);
    //另外,对于像一个activity中通过fragment来进行界面的处理; 我们大多数情况下是采用广播的机制来实现fragment中adapter的数据的更新;这样做主要是考虑到工作线程的任务加载完成,而具体的对应刷新的activity可能还没有启动;另外,基于接口隔离原则,如果用handler进行通信的话,则不能很好的满足这一原则;
      

  3.   

    应该与周期关系不是很密切。最主要的原因是两条线成是双向通信。Handler类似于P2P的通信。
    广播则类似于一个server端,用来处理分发不同线程的请求,从控制器的角度来说用广播更好一点。一般使用Handler的,多用于子线程处理事务,完成时告知主线程这一类的情况。
    而类似楼主所说的多条线程之间需要频繁交互的话,广播是个很好的选择,并且结构清晰,只是不知道广播的性能与handler相比会怎么样。