码迷,mamicode.com
首页 > 其他好文 > 详细

广播接收者的使用

时间:2017-05-28 19:35:40      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:manifest   使用   override   注册   receiver   变量   print   构造方法   构造   

一:广播的发送

简单几行代码,只需要注意发送需要上下文

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);
}

 

广播接收者的使用

标签:manifest   使用   override   注册   receiver   变量   print   构造方法   构造   

原文地址:http://www.cnblogs.com/dp-luo/p/6916337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!