您的位置:首页 > 移动开发 > Android开发

Android BroadcastReceiver广播接受者

2016-02-25 11:08 204 查看
静态注册
配置清单表注册:只要曾经注册过哪怕关闭也能调用
方式一:sendBroadCastReceive
广播的步骤:
发送 无序广播,普通广播
(1).发送方
Intent intent=new Intent();
intent.setAction("");发送的内容
sendBroadcast(intent);
(2).接受方
创建一个reserver类继承BroadcastReceiver
重写receiver方法
配置receiver并且写receiver的属性intent-filter,--action
注:action的名字和发送的内容相同setAction;

(3). 主要作用service方法里面执行,可以在不同应用之间进行通信

注:如果多个action一样,先执行当前项目里面的然后在执行其他项目中的;即接受方同时收到广播没有优先级别

http://dev.umeng.com/social/android/operation

方式二:

发送有序广播
1.创建
Intent intent=new Intent("youxu");
sendOrderedBroadcast(intent, null, null, null, 1, "我说了算", null);
2.创建broadReciver
getResultData();获取发送的信息
setResultData();修改发送的信息
abortBroadcast();拦截发送的信息,终止发送;
3.配置
<receiver android:name="com.example.reseiver.TwoBroadReceive">

<intent-filter android:priority="900">
<action android:name="youxu"/>

</intent-filter>
</receiver>
priority为-1000到1000数值越大优先级越高

短信的接受加权限设置的波段action
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
权限 android.permission.RECEIVE_SMS

开机启动的action即从非Activity启动
<action android:name="android.intent.action.BOOT_COMPLETED"/>
开机启动需要调到activity必须设置flags
intent.setFlags(Intent.FLAG_ACTIVITYw_NEW_TASK);

</receiver>
<receiver android:name="com.example.duanxin.KaiJiXinResever" >
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>ww

动态注册:
在当前Acitivity中配置
在onStart中注册,onStop中取消unregisterReceiver
DongTaiBroadReceive receive;

IntentFilter intentfilter=new IntentFilter("intent");
receive = new DongTaiBroadReceive();
registerReceiver(receive, intentfilter);
Intent inten=new Intent("intent");
sendBroadcast(inten);

在当前Acitivity中取消receiver

protected void onDestroy() {
// TODO Auto-generated method stub

unregisterReceiver(receive);
super.onDestroy();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: