Android编程——Broadcast详解

介绍:
网上常说广播是组件,在我看来它并不能称为组件。
它更应该被称为是系统提供的消息自定义处理机制。
系统不能满足所有人的需求,那就让你自己去实现。
当系统或者程序某些状态被触发,需要做对应的处理
比如:系统启动,程序跟随启动,实现开机启动功能。

分类:
广播的传播分为两类:有序,无序
有序:优先级最高的先接收,可截断消息,不在向后传播
无序:大家都能接收,没有优先级区分,也不能阻止传播

接收:
当某个消息发出,我要做出对应处理,那就需要注册
有两种方式注册:动态注册(代码中),静态注册(xml)

class  MainActivity extends AppCompatActivity {
    NewClassName newClassName;
    Intent intentFilter;

    //动态注册
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        //设置要接收的广播消息
        intentFilter=new Intent("");
        //实例化广播接收者
        newClassName=new NewClassName();
        //向系统注册
        registerReceiver(NewClassName,Intent);
    }

    //继承广播接收者,重写广播处理函数
    class NewClassName entends BroadcastReceiver{
        @Override
        onReceiver{
        //处理代码
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //生命周期结束的时候,取消注册
        unregisterReceiver(newClassName);
    }
}

//.xml



  

      
          
              
              
          
      
      
      //静态注册
      
          //设置接受的广播消息
          
              //BOOT_COMPLETED:系统开机
              
          
      
  


//.java
class  MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    }
    //继承广播接收者,重写广播处理函数
    class MyReceiver entends BroadcastReceiver{
        @Override
        onReceiver{
        //处理代码
        }
    }
}

发送:
现在我们发送自定义的广播,记住要接收并处理,不然发了没意义。
接收时的广播消息要和发送时的广播消息匹配,不然接收不到广播。
//发送无序广播
sendBroadcasts();
//发送有序广播
sendOrderedBroadcasts();

总结:
接收系统定义的广播或者程序自定义广播,并进行处理。
满足不同人的不同需求,让程序具有更多的变化和扩展。

参考:
第一行代码第2版

你可能感兴趣的:(Android编程——Broadcast详解)