关于AndroidBroadcastReceiver的注册方式

本篇文章简单介绍一下android 广播的注册方式,也是自己做一下笔记,以后对广播的理解更加深入后,再详谈,哈哈,,

广播的注册方式

1. 静态方式注册:
要创建一个类继承BroadcastReceiver(广播接收者);

public class CustomBroadcastReaceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //获取启动广播的标记昵称
        String actionStr = intent.getAction();
        //发送广播的消息
        String contextStr = intent.getStringExtra("context");
        Toast.makeText(context, contextStr, Toast.LENGTH_SHORT).show();
    }
}

然后在Activity中启动,发送广播

public class TextBR extends Activity {

    CustomBroadcastReaceiver broadcastReaceiver;
    //无论是动态注册广播,获取静注册加广播都需要一个标记,识别
    //这个标记“jingtaizhuce”需要在Androidmainferi中添加的。
    private static final String ACTION = "jingtaizhuce";
    Intent intent = null;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     //静态注册,广播,
        intent = new Intent(ACTION);
        intent.putExtra("context", "hi");
        sendBroadcast(intent);
    }

我这里只是为了测试,刚进入界面时候弹出hi这个信息,


   //这是一个点击事件
   //当你点击时候,又发送一条广播,信息是hello。。。
    public void myBroadcaeiver(View view) {
        intent.putExtra("context", "hello");
        sendBroadcast(intent);
    }
}

最后我们要在Androidmainferi里注册一下广播
注意:上面提示到的标记就是在注册广播这里添加进去

     <receiver android:name=".textguangbofuwu.CustomBroadcastReaceiver">
            <intent-filter android:priority="1000"> <!-- 设置最高优先级 -->
                <action android:name="jingtaizhuce" />
            </intent-filter>
        </receiver>

静态注册广播就完成了,,

动态注册广播 ##’

其实动态注册广播,和EventBust这个挺像的,EventBus就是对广播的一个封装,挺6的一个框架,,可以在网上搜来看看,,

    //动态注册
  broadcastReaceiver = new CustomBroadcastReaceiver();
  IntentFilter intentFilter = new IntentFilter();
  intentFilter.addAction(ACTION);
  registerReceiver(broadcastReaceiver, intentFilter);

注意intentFilter.addAction(ACTION);,这个ACTION要和你送广播时的Action一致,当然ACTION是字符串还是什么随便你。这个无论是静态还是动态都一样,静态动态注册,我的理解就是和布局文件差不多,是要在XML里放一个TextView,还是要用代码动态添加一个TextView,,添加的方式不同,,。。

发布广播

        intent = new Intent();
        intent.setAction(ACTION);
        intent.putExtra("context", "听说还能遇见");
        sendBroadcast(intent);

好了,动态,静态注册广播完成。。。啦啦啦啦啦啦啦啦啦!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值