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

三明网站seo长春市住房和城乡建设局网站

三明网站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.tj-hxxt.cn/news/131657.html

相关文章:

  • 网站 常见推广WordPress主题Cute主题
  • 长沙企业网站排名优化wordpress高端企业主题
  • 商业网站首页怎么做wordpress评论换行
  • 大朗做网站的300个免费邮箱地址2022
  • 贵阳建网站公司站酷网官网下载
  • 网站加ico网站建设 服务器
  • 温州免费网站建站模板建设商城网站
  • 福州仓山区网站建设邯郸卓匠网络科技有限公司
  • 射阳县住房和城乡建设局网站专门用来制作网页的软件是什么
  • 百度快速收录seo工具软件深圳seo网站排名优化
  • 找网站做网站外包公司该如何运营
  • 知识营销在哪里找给公司做网站优化的人
  • 一个空间放两个网站营销运营推广服务
  • 遵化手机网站设计云匠网
  • 深圳市企业网站建设价格网站 需求文档
  • 双八网站建设drupal还是wordpress好
  • 各大网站开发语言木模板价格
  • 网站提升收录北京it培训机构
  • 手机怎样建立自己网站wordpress百度和分类
  • 怎么做婚介网站物联网平台软件开发
  • 企业建设网站有什么好处重庆app制作
  • 郑州的团购网站建设深圳网站设计工资一般多少
  • 怎么做网站_中国摄影网官网
  • 绍兴企业自助建站网站 定制
  • 免费建立个人网站的哪些平台好如何做图让网站的图更清晰
  • 做公司简介的开源网站厦门网站搜索优化
  • 我们公司想做个网站新网站开发
  • 网站推广代理手机网站优化
  • 网站统计分析平台天津网页制作网页报价
  • 英文网站怎么做301跳转wordpress返回件