当前位置: 首页 > news >正文

东莞企业建设网站官网有限公司嘉兴自助建网站

东莞企业建设网站官网有限公司,嘉兴自助建网站,三明网站seo,人力资源公司代缴社保合法吗目录 一、Broadcast 的定义 Broadcast 是一种广泛运用的、在应用程序之间传输信息的机制#xff0c;Android 中的广播与传统意义上的电台广播类似#xff0c;一个广播可以有任意个接收者#xff0c;当然也可能不被任何应用程序所接收。广播机制是一个典型的发布-订阅模式Android 中的广播与传统意义上的电台广播类似一个广播可以有任意个接收者当然也可能不被任何应用程序所接收。广播机制是一个典型的发布-订阅模式也就是观察者模式。 广播机制最大的特点是发送方不关心接收方是否接受到数据也不关心接收方是如何处理数据的通过这样的方式来达到接、收双方的完全解耦。 一广播的三要素 广播Broadcast用于发送广播广播接收器BroadcastReceiver用于接收广播意图内容Intent用于保存广播相关信息的媒介 二广播的分类 普通广播有序广播本地广播Sticky 广播 二、普通广播 普通广播是完全异步的通过 Context 的 sendBroadcast() 函数来发送消息传递的效率比较高但所有的 receivers接收器的执行顺序不确定。缺点是接收者不能将处理结果传递给下一个接收者并且无法终止广播 Intent 的传播直到没有与之匹配的广播接收器为止。 下面我们来写一个普通广播 step1定义一个广播接收器 public class MyBroadcastReceiver extends BroadcastReceiver {private static final String TAG MyBroadcastReceiver;Overridepublic void onReceive(Context context, Intent intent) {if (intent null) {return;}String name intent.getStringExtra(name);Log.d(TAG, name);} }step2注册广播 注册广播的方式有两种静态注册 和 动态注册 静态注册即在 AndroidManifest.xml 文件中进行注册 receiverandroid:name.MyBroadcastReceiverandroid:enabledtrueandroid:exportedtrueintent-filteraction android:namecom.cyy.broad //intent-filter /receiverenabled 设置为 true 意味着能够接受到信息exported 为 true 意味着能够接收到外部 apk 广播发送的信息。 动态注册即在代码中进行注册 public void registerHelloBroadcast() {receiver new MyBroadcastReceiver();registerReceiver(receiver, new IntentFilter(com.cyy.broad));}如果使用动态注册那么不要忘记在执行 onDestroy 时注销广播 Overrideprotected void onDestroy() {super.onDestroy();if (receiver ! null) {unregisterReceiver(receiver);}}step3发送广播 sendBroadcast() 如果是静态注册的广播 Intent intent new Intent(com.cyy.broad); ComponentName componentName new ComponentName(com.chenyouyu.broadcastdemo,com.chenyouyu.broadcastdemo.MyBroadcastReceiver); intent.setComponent(componentName); intent.putExtra(name, hello); sendBroadcast(intent);如果是动态注册的广播 Intent intent new Intent(com.cyy.broad); intent.putExtra(name, hello); sendBroadcast(intent);当我们调用了 sendBroadcast() 后会调用 MyBroadcastReceiver 的 onReceive 函数。 三、有序广播 有序广播通过 Context.sendOrderedBroadcast() 来发送所以的广播接收器按照优先级依次执行广播接收器的优先级通过 receiver 的 intent-filter 中的 android:priority 属性来设置数值越大优先级越高参数为 -1000 ~ 1000。当广播接收器接收到广播后可以使用 setResult() 函数来将结果传递给下一个广播接收器然后通过 getResult() 函数来取得上一个广播接收器返回的结果并可以使用 abortBroadcast() 函数来让系统丢弃该广播使该广播不再传递到别的广播接收器。 设置广播的优先级代码示例 receiverandroid:name.MyBroadcastReceiverandroid:enabledtrueandroid:exportedtrueintent-filter android:priority100action android:namecom.cyy.broad //intent-filter/receiver关于 android:priority 的取值范围官网给出的是 -1000 ~ 1000 但是看到很多人设置成2147483647Integer.MAX_VALUE这个值可能因为 android:priority 的属性值是 integer 类型系统会拿这个值和其他值做比较结果怎么都是它最大了。 发送有序广播 sendOrderedBroadcast(intent,null);四、本地广播 在 21 版的 Support v4 包中新增本地广播也就是 LocalBroadcastManager 。之前广播都是全局的所有应用程序都可以接收到这样就会带来安全隐患。但是有的时候我们并不需要把自己的应用内的信息广播给所有应用而只是进程内使用现在使用 Support v4 包中的 LocalBroadcastManager 就能够实现限于应用内的广播。 它的用法很简单只需要把调用 context 的 sendBroadcast、registerReceiver、unregisterReceiver 的地方替换为 LocalBroadcastManager.getInstance(Context context) 中对应的函数即可 函数作用LocalBroadcastManager.getInstance(context).registerReceiver(receiver,intentFilter)注册 ReceiverLocalBroadcastManager.getInstance(context).unregisterReceiver(receiver)注销 ReceiverLocalBroadcastManager.getInstance(context).sendBroadcast(intent)发送异步广播LocalBroadcastManager.getInstance(context).sendBroadcastSync(intent)发送同步广播 五、sticky 广播 sticky 广播通过 Context.sendStickyBroadcast() 函数来发送用此函数发送的广播会一直滞留当有匹配此广播的广播接收器被注册后该广播接收器就会收到此条广播。使用此函数发送广播时需要获得 BROADCAST_STICKY 权限 uses-permission android:nameandroid.permission.BROADCAST_STICKY/sendStickyBroadcast() 只保留最后一条广播并且一直保留下去这样即使已经有广播接收器处理了该广播当再有匹配的广播接收器被注册时此广播仍会被接收。如果你只想处理一遍该广播可以通过 removeStickyBroadcast() 函数实现。 参考资料 《Android开发进阶从小工到专家》何红辉
http://www.ho-use.cn/article/10815792.html

相关文章:

  • 什么是网页和网站微信管理系统在哪里找
  • 网站的栏目是什么成都旅游公司
  • 网站内部seo优化包括2323wan网页游戏
  • 张掖市住房和城乡建设厅网站新手做网站的注意事项
  • 嘉兴有哪些做网站的公司昆明参差网站
  • 网站建设公司的性质泰州网站建设找思创
  • 国外哪些做问卷赚钱的网站做神马网站优化排名
  • 西安网站开发托管代运营信息系网站建设开题报告书
  • cpa推广做网站营销渠道有哪些
  • 网站建设需要的技术路线百度问问我要提问
  • 网站建设 云南做网站如何更新百度快照
  • 站长工具ip查询12306网站建设
  • 简要描述网站开发过程沈阳唐朝网络推广
  • 网站页面分析作业注册公司需要怎么注册
  • 安徽网站建设流程设计平台兼职
  • 企业网站的完整性包括哪些优酷wordpress建站教程
  • wordpress 子目录建站嘉兴秀宏建设公司网站
  • 盐城网站开发江苏优化网站价格
  • 十大创意网站前端与移动开发
  • 如何制作网站主页建筑工程网上保健网站
  • 做调查的网站推荐软文写作要求
  • 重庆建设工程招标网站如何攻击网站
  • 昆山seo网站优化软件苏州怎么制作网页网站
  • 网站建设的项目计划模仿软件下载wordpress
  • 设计一个自己的电商网站亚马逊注册没有公司网站怎么做
  • 打赏网站开发设计类专业好找工作吗
  • 维修网站源码出口外贸交易平台
  • 站长数据男女做污污的网站
  • 制作网站演示wordpress剑侠情缘主题
  • 响应式网站编码怎吗设置网站建设最新技术及发展趋势