想实现这样的一个功能:
现在我想让我的程序在正常运行的时候在后台另开一个线程去接收来自另一个程序发出的消息
(这些消息是看不见的,就类似于Handler,Looper和Message结合发送的消息那样)
这些消息我只管去接收即可,如果在这些消息中没有我要处理的那个消息,它就会一直循环的接收
直到我的程序接收到了那个已经设定好的要接收的消息为止
这时,程序就会中断接收,开始处理执行下一段该执行的代码不知道有没有高手知道这样该怎么做?
比如要用到那些类和方法,我之前从网上找过,看到了一个叫过MessageQueue的类,不过没看明白它是干什么用的
又有什么功能和如何使用?
或者说大家还有另外的好办法可以帮助我实现这个功能

解决方案 »

  1.   

       主线程本来就有自己的消息队列  新建的线程默认创建时是没Looper,消息处理是用主线程消息队列。   你要实现这个功能可以 创建线程后让线程挂起wait(),主线程收到消息后唤醒线程notify() 开始处理执行下一段该执行的代码
      

  2.   

    用sendBroadcast 广播一个intent就行拉
      

  3.   


    你要的是程序间的通信就不能直接用消息队列处理了,如上面说的用广播或使用AIDL
    这上面有AIDL的工程
    http://myqdroid.blog.51cto.com/2057579/394189
      

  4.   

    在 <intent-filter>里面添加自己的action,然后发一个这个intent不就过滤掉了
      

  5.   


    其实是这样的,经理要求的是两个程序间之间的通信,不是Server和Client那种形式。
    就像我们之间相互说话那样,不需要一方去请求另一方,而是A方一直给B方说话,而B方则在不停的听
    直到听到了他感兴趣的那句话时,他就会做出反应我这样的描述大家应该就会明白了
      

  6.   


    可以在B方注册一种广播,假如叫Msg,那么在A中就可以发这种广播,又广播里面可以附带一些信息,
    所以,A在发送的时候附带上一些请求信息,在B接收到广播之后,就能对附带的请求进行判断,如果是感兴趣
    的就处理,并且如果要停止接收命令的话,就把注册的广播给反注册就OK啦。
      

  7.   

    我操,我怒了, 楼主连Android四大基本组件是什么都不知道就来问.
    BroadCastReceiver都不知道,我彻底的怒了.
      

  8.   


    如果都会了还来问什么?如果lz的需求是在同一个进程中建议采用2楼的方法,如果是不同进程的数据共享建议采用aidl