可不可以这样理解
handler是同一activity中传递消息的
intent是上下有联系的activity中传递消息
BroadcastReceiver是一对多个activity传递消息
Bundle是在本地保存消息的另外
handler的传递是不是在activity onStop后就中断了?BroadcastReceiver是不是只要activity没onDestory就都能收到?

解决方案 »

  1.   

    你总结的挺好的
    我也是新手Bundle是在本地保存消息的  这话什么意思  什么是本地保存
      

  2.   

    我觉得,handler主要是用于操作简单的一步处理的,如更新UI ,Intent是用于传递消息,但不限于activity,service和BroadcastReceiver也可以,BroadcastReceivier,顾名思义,就是用于广播的,经消息传递给能接受的activity和service,主要依靠action来区分,至于Bundle我认为这是将数据进行键值对存储,方便传递,和本地保存消息没关系,本地保存数据有三种方式,1   是sqlite  2   是sharedPerference   3是存储成文件
      

  3.   

    如果你的BroadcastReceiver是在androidmanifest中静态注册的,那使用有相应的Intent发出,无论包含该BroadcastReceiver的程序是否启动,该BroadcastReceiver都会响应Intent
    如果你的BroadcastReceiver是在代码中动态注册的context.registerReceiver() 只用在程序的生命周期内会响应Intent
    handler一般使用来提供非主线程进行UI操作,和一些耗时操作的
      

  4.   

    protected void onCreate(Bundle savedInstanceState) {
    每次直接kill掉程序的时候
    可以保存一些数据到Bundle savedInstanceState,这个不就是硬盘上的
      

  5.   

    补充一点
    android的消息传递机制是另一种形式的”事件处理“这种机制主要是为了解决android
    应用的多线程问题--android平台不允许Activity新启动的线程访问该Activity里面的界
    面组件,这样会导致新启动的线程无法动态的改变界面组件的属性值。
    这里就需要借助Handler的消息传递机制来实现。