首页 > 代码库 > 广播接收者的使用
广播接收者的使用
一:广播的发送
简单几行代码,只需要注意发送需要上下文
public void sendBC(View v){
System.out.println("send bc : ");
Intent intent = new Intent();
intent.setAction("com.luo.bc");
this.sendBroadcast(intent);
}
二:广播接收者
1 静态注册广播,优点:可以常驻在App中,缺点:里面只能操作静态变量
注意:需要一个空构造方法
第一步:创建一个内部类
public static class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_SHUTDOWN)){
System.out.println("action:"+intent.getAction());
}
}
}
第二步:注册到manifest文件中,同时指定好action
<receiver android:name=".MainActivity$MyReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_SHUTDOWN"/>
</intent-filter>
</receiver>
2 动态注册广播,缺点:需要注册和反注册,优点:可以操作任意对象
创建好对象,并封装两个注册方法,在生命周期中完成注册与反注册
public static class MyReceiverDynamic extends BroadcastReceiver {
public MyReceiverDynamic() {
}
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("action:"+intent.getAction());
}
}
public void registMyReceiverDynamic(){
IntentFilter filter = new IntentFilter();
filter.addAction("com.luo.bc");
myReceiverDynamic = new MyReceiverDynamic();
registerReceiver(myReceiverDynamic,filter);
}
public void unregistMyReceiverDynamic(){
unregisterReceiver(myReceiverDynamic);
}
广播接收者的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。