`

BroadcastReceiver要点

 
阅读更多

BroadcastReceiver

作用:接收传来的特定类型的intent,然后执行相应操作

使用方法:

1.新建一个类MyBroadcastReceiver,extends BroadcastReceiver

2.override 其中的onReceiver(...)方法,一旦激活一个 MyBroadcastReceiver 对象,该对象马上调用该方法,该方法结束时,该MyBroadcastReceiver对象被清理。

3.(1)在AndroidManifest.xml中注册,在application中添加一个<Receiver android:name="MyBroadcastReceiver"></Receiver>标签

  该标签内含有<intent-filter>,此标签用于过滤得到该MyBroadcastReceiver想要处理的intent对象

  过滤可以基于intent的action/data/catagory三个标准,即在<intent-filter>插入<action>或者<data>或者<catagory>,和这三个表情的android:name相同的intent会得到MyBroadcastReceiver的处理

  (2)在代码中注册,代码如下

  MyBroadcastReceiver receiver = new MyBroadcastReceiver();

  IntentFilter filter = new IntentFilter();

  filter.addAction(Intent.ACTION_EDIT);

  MainActivity.this.registerReceiver(receiver, filter);

  PS:intent被发送后,会被插入到某个不可知的队列当中,一个BroadcastReceiver被程序注册激活以后,会从队列中并行取出满足条件的intent,多线程并发执行。

  在代码中解除注册用的是:MainActivity.this.unregisterReceiver(receiver);

4.在某activity中,首先new intent(),初始化intent,然后使用

  Activity.this.sendBroadcast(intent);

  将该intent广播出去,如果和哪个BroadcastReceiver的intent-filter匹配了,就可以激活该BroadcastReceiver。

5.使用难点:intent的action和data和catagory的理解?

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics