Android开发之局部广播的使用——LocalBroadcast
来源:互联网 发布:哪种编程语言最火 编辑:程序博客网 时间:2024/06/05 17:05
一直以来都想着写一篇关于四大组件的文章,可是一直懒一直都没去写,今天终于抱起了电脑来敲一篇。这篇文章是关于安卓四大组件之一的广播的使用,网上关于这方面的文章也是相当多,我这里根据我一年多的工作中总结下来使用比较多的东西来说说,核心内容是Android的局部广播,也称本地广播。
一、推荐原因
我们都知道平常使用的Broadcast都属于系统全局广播,也就是发出的广播可以被其它应用程序接收到,并且我们也可以接受来自于其他任何应用程序的广播。这样一来会造成一些问题,一是消耗性能,二是容易引起安全性的问题,比如我们发送的一些携带关键性数据的广播可能被其他应用程序截获,或者其他的应用程序不停地向我们广播接收器中发送各种垃圾广播,所以为了能够简单的解决这方面的问题,Android引入了一套广播本地广播机制,使用该机制发出的广播只能够在本应用内部进行传递,并且广播接收器也只能接收来自本应用发出的广播。
二、使用场景
更新UI,举个简单的例子,我们的App一般都会有用户登录的功能,很多时候有这样的需求,我们在用户登录完成后,有些界面需要根据登录信息作出及时的响应,相应的做出UI上的改变,针对这种情况,我平时用的比较多的就是使用局部广播来实现,在需要作出改变的地方添加广播接受器进行数据接收即可。
三、代码实战
这里使用LocalBroadcastManager这个单例类来进行实现,具体操作代码如下:
首先我们要自定义广播,定义一个action:
/** * 自定义广播 */public static final String LOGIN_ACTION = "com.archie.action.LOGIN_ACTION";
然后定义一个发送广播的方法:
/** * 发送我们的局部广播 */ private void sendBroadcast(){ LocalBroadcastManager.getInstance(this).sendBroadcast( new Intent(LOGIN_ACTION) ); }然后,我们在需要发送广播的地方调用我们的sendBroadcast()方法,这里大家根据自己的具体情况调用该发送即可。
好了,发送广播说完了,现在来说说接收广播,这里我们创建一个类让它继承自BroadcastReceiver广播接受器这个类,重写onReceive()方法:
/** * 自定义广播接受器,用来处理登录广播 */ private class LoginBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { //处理我们具体的逻辑,更新UI } }有了我们的广播接收器之后呢,我们要去动态的注册我们的广播接收器,这里分别创建了注册和取消注册的两个方法,一般是在onCreate()方法中注册,然后在onDestroy()方法中取消注册,为了防止内存泄漏,具体代码如下:
//广播接收器 private LoginBroadcastReceiver mReceiver = new LoginBroadcastReceiver(); //注册广播方法 private void registerLoginBroadcast(){ IntentFilter intentFilter = new IntentFilter(LoginActivity.LOGIN_ACTION); LocalBroadcastManager.getInstance(mContext).registerReceiver(mReceiver,intentFilter); } //取消注册 private void unRegisterLoginBroadcast(){ LocalBroadcastManager.getInstance(mContext).unregisterReceiver(mReceiver); }好了,到这里就完成了我们本地广播的使用。写的仓促,有不对的地方欢迎批评指正,谢谢各位亲!
- Android开发之局部广播的使用——LocalBroadcast
- Android本地广播LocalBroadcast完全解析
- Android之IntentService搭配LocalBroadcast
- Android 的定向广播 局部广播
- Android LocalBroadcast
- Android开发之使用本地广播
- 使用LocalBroadcast实现跨Activity的MVVM
- Android开发之广播
- Android之广播机制—自定义广播
- Android之广播机制—有序广播
- Android之广播机制—本地广播
- Android开发之浅谈广播的运用
- android开发广播的使用Broadcast Receiver
- android 广播的使用与开发
- 【Android成长之路】全局大喇叭——广播机制的浅谈(使用本地广播)
- Android四大组件之广播的使用
- Android学习之本地广播的使用
- Android开发入门——Android的广播机制
- AtCoder:Tautonym Puzzle(思维 & 构造)
- JAVA知多少
- 我是怎么走上程序员这条路的。
- java中的dispose()方法
- Android横竖切屏时的生命周期
- Android开发之局部广播的使用——LocalBroadcast
- libvirt网络过滤器
- RN学习第一篇-开发环境的配置
- 深入学习前端MVC和MVVM(二)
- ngrok的下载以及使用
- keil5MDK版本不兼容的问题
- 【问题处理】Plugin execution not covered by lifecycle configuration 最简单!!!
- 前端性能优化的基础知识
- “史上最疯狂的”英语活动总结 ——5月份英语活动总结