动态注册
public class Main2Activity extends AppCompatActivity { private Receiver recevier; //定义一个接收器 private IntentFilter intentFilter; //定义一个过滤器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); recevier = new Receiver();//实例化接收器 intentFilter = new IntentFilter(); //实例化一个过滤器 intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); //添加一个要筛选出来的广播,可以添加多个 //当网络发生变化的时候,系统广播会发出值为android.net.conn.CONNECTIVITY_CHANGE这样的一条广播 registerReceiver(recevier,intentFilter); } @Override protected void onDestroy() { unregisterReceiver(recevier); // 要注销 super.onDestroy(); } // 创建接收类 class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //如果有对应广播触发时,将会到这里接收 } }}
静态注册 (1)
1. AndroidMainFest中的application标签下添加receiver的子标签(该receiver需要提前定义好),操作过程中会自动关联,提供选择
这里的receiver标签有三个主要属性:
- name:关联的接收器类名
- enable:是否启用该标签
- exported: 是否也接收外部广播
- <intent-filter>: 过滤器,这里可以设置多个广播action内容
静态注册(2) 使用Android Studio自带的快捷创建
这样receiver有了,mainifests里面也自动生成了对应项,剩下的就是自己添加相关广播过滤器了。
在“广播一”里面我将类写细分开了,并写入了自己的一些经验,觉得太详细了反而不舒服(谁他妈看那么老长老长的,而只介绍一个Hello的东西)