BroadCastReciver广播
2017-03-02 本文已影响9人
金馆长说
-
BroadcastReceiver广播组件
1.可以用来接收一些广播比如系统广播,和自定义广播- 二种注册方式
动态注册:不是常驻广播程序退出后就会收不到广播了
静态注册xml注册:常驻广播程序退出了只要注册了广播,就可以接收到广播的通知。
- 二种注册方式
-
二种发送方式
-
无序广播发送: 只要注册了广播都可以接收到不能拦截,没有优先级,除非设置了优先级的值。
-
有序广播发送:广播可以被拦截,值可以被修改,可以被终止。priority值
-1000到1000越大谁越来先接收到广播。注意:所谓广播肯定需要先 1.注册广播 2.在有一个接收。3.然后在发送
//创建接收器
public class MyBroadCast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(BarodCast.this, "广播", Toast.LENGTH_SHORT).show();
getResultData()//获取数据
setResultData();//修改数据
abortBroadcast();//结束广播,后面的接收不到会。
}
}
//动态注册,不是常驻广播。
public void registerBroadCast() {
IntentFilter filter = new IntentFilter();
filter.addAction("com.guangbo");//设置过滤,不设置会收不到。
registerReceiver(new MyBroadCast(), filter);
}
//静态注册常驻广播
<receiver android:name=".broadcast.TestBroadcast">
<intent-filter android:priority="1">
<action android:name="com.guangbo"></action>
</intent-filter>
</receiver>
//发送有序广播广播
public void sendBroadCast() {
Intent in = new Intent();
in.setAction("com.guangbo");//设置过滤,不设置会收不到。
sendBroadcast(in);
}