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

网站开发有什么职位农家乐网站源代码

网站开发有什么职位,农家乐网站源代码,wordpress 访问速度,专业网站建设要多少钱目录 一#xff0c;Broadcast和BroadcastReceiver 1#xff0c;简介 2#xff0c;广播使用 二#xff0c;静态注册和动态注册 三#xff0c;无序广播和有序广播 1#xff0c;有序广播的使用 2#xff0c;有序广播的截断 3#xff0c;有序广播的信息传递 四Broadcast和BroadcastReceiver 1简介 2广播使用 二静态注册和动态注册 三无序广播和有序广播 1有序广播的使用 2有序广播的截断 3有序广播的信息传递 四本地广播与全局广播 1本地广播的使用 一Broadcast和BroadcastReceiver 1简介 broadcast是Android提供的一种广播机制用于组件或进程即应用间通信同时也是Android四大组件之一 广播broadcast由两部分组成发送者和接收者。发送者可以是ActivityService等广播的接收者为BroadcastReceiver也就是广播接收器 2广播使用 broadcast的使用基本分为四步 创建BroadcastReceiver类注册BroadcastReceiver发送广播解除注册 1创建BroadcastReceiver子类重写onReceive方法。onReceive方法接收两个参数context和intentcontext为发送者的上下文intent是发送者发送过来的信息 public class MyBroadcastReceiver extends BroadcastReceiver {private static final String TAG MyBroadcastReceiver;Overridepublic void onReceive(Context context, Intent intent) {Log.i(TAG, MyBroadcastReceiver onReceive: 收到了广播消息);} } 2注册接收器接收器的注册方式分为静态注册和动态注册两种方式这里使用动态注册方式。注册时需要配置过滤器并且设置action这里的action表示该注册器能够接收到包含该action的广播 private void registerTheReceiver() {//配置过滤器设置actionIntentFilter intentFilter new IntentFilter();intentFilter.addAction(TextUtil.ACTION_SEND_RESULT);//注册接收器registerReceiver(broadcastReceiver, intentFilter); } 3发送广播与其他四大组件ActivityService相同也是通过intent来发送广播通过设置action标识该广播可被哪些接收器接收到通过putExtra来传递额外信息 //设置信息 Intent intent new Intent(); intent.setAction(TextUtil.ACTION_SEND_RESULT); intent.putExtra(TextUtil.KEY_RESULT, 这是广播1); //发送广播 sendBroadcast(intent); 4解除注册应当在合适的地方解除接收器的注册 Override protected void onDestroy() {super.onDestroy();Log.i(TAG, onDestroy: );//解除注册unregisterReceiver(broadcastReceiver); } 二静态注册和动态注册 广播接收器有两种注册方式在Manifest文件中注册和在java代码中注册我们称在Manifest文件中注册为静态注册在java代码中注册为动态注册。 上面使用的方式即为动态注册下面为静态注册方式 1静态注册前同样需要先创建接收器类然后在Manifest文件中指明接收器的类名可以通过intent-filter标签来配置过滤器并设置action 静态注册的广播一般用于在应用启动时自动接收待定事件比如系统启动网络状态变化和电池状态变化等 常见的广播类型Action 三无序广播和有序广播 无序广播接收器接收到的广播没有先后顺序几乎同时收到 有序广播接收器按优先级顺序接收广播同一时刻只能有一个接收器接收到广播 简单来说就是广播可以设置优先级然后就可以按顺序接收到广播设置了优先级的广播称为有序广播没有设置的称为无序广播普通广播为无序广播  1有序广播的使用 通过IntentFilter过滤器的setPriority方法设置优先级数值范围一般在-1000~1000之间数值越大优先级越高有序广播通过sendOrderedBroadcast方法发送 注册三个接收器依次设置优先级那么接收到的顺序应为3 2 1 private void registerMyReceiver() {IntentFilter intentFilter new IntentFilter(TextUtil.ACTION_SEND_RESULT);IntentFilter intentFilter2 new IntentFilter(TextUtil.ACTION_SEND_RESULT);IntentFilter intentFilter3 new IntentFilter(TextUtil.ACTION_SEND_RESULT);//设置优先级intentFilter.setPriority(100);intentFilter2.setPriority(101);intentFilter3.setPriority(102);registerReceiver(myBroadcastReceiver, intentFilter);registerReceiver(myBroadcastReceiver2, intentFilter2);registerReceiver(myBroadcastReceiver3, intentFilter3); } Intent intent new Intent(); intent.setAction(TextUtil.ACTION_SEND_RESULT); intent.putExtra(TextUtil.KEY_RESULT, 这是广播2); //有序广播的发送 sendOrderedBroadcast(intent, null); 运行结果如下可以看到接收顺序确实为3 2 1 2有序广播的截断 在接收器中调用abortBroadcast方法即可阻断有序广播的传递 截断后广播不在向下传递类似于Android的事件分发 以上面的例子为基础我们在接收器2中截断广播那么预期结果应为接收器3 2可以接收到广播1接收不到 public class MyBroadcastReceiver2 extends BroadcastReceiver {private static final String TAG MyBroadcastReceiver;Overridepublic void onReceive(Context context, Intent intent) {Log.i(TAG, MyBroadcastReceiver2 onReceive: 收到广播消息);abortBroadcast(); //有序广播的截断} } 运行结果如下可以看到接收器1没有接收到广播 3有序广播的信息传递 在有序广播的传递过程中可以通过一系列方法来传递一些信息上游接收器通过这些方法来向下游传递额外信息 //传递Bundle信息setResultExtras(Bundle);//传递字符串信息 setResultData(String);//传递int型信息 setResultCode(int);//同时传递int String Bundle型数据 setResult(int, String, Bundle); 下游接收器通过对应的get方法来获取信息 //获取Bundle信息 getResultExtras(true);//true表示如果传递过来的数据为空则返回一个空的Map//获取int型信息 getResultCode();//获取String型信息 getResultData(); 例如我们在接收器3中向下游传递一些信息因为接收器2的优先级小于接收器3所以可以在接收器2中接收到传递的信息 public class MyBroadcastReceiver3 extends BroadcastReceiver {private static final String TAG MyBroadcastReceiver;Overridepublic void onReceive(Context context, Intent intent) {//向下游传递额外信息Bundle bundle intent.getExtras();bundle.putString(name, MyBroadcastReceiver3 喜多郁代);setResultExtras(bundle);Log.i(TAG, MyBroadcastReceiver3 onReceive: 收到静态广播消息);} }public class MyBroadcastReceiver2 extends BroadcastReceiver {private static final String TAG MyBroadcastReceiver;Overridepublic void onReceive(Context context, Intent intent) {Bundle bundle getResultExtras(true);//true表示如果传递过来的数据为空则返回一个空的MapString name bundle.getString(name);Log.i(TAG, 发件人: name 收件人: MyBroadcastReceiver2);Log.i(TAG, MyBroadcastReceiver2 onReceive: 收到静态广播消息);} } 运行结果如下  四本地广播与全局广播 本地广播仅在本app内部传播其他app接收不到保证了数据的安全性 全局广播可以在整个手机所有app之间传播会有安全性问题普通广播默认是全局广播 本地广播的注册发送和解除注册都需要通过LocalBroadcastManager类来完成使用LocalBroadcastManager需要添加依赖 implementation androidx.localbroadcastmanager:localbroadcastmanager:1.1.0 另外本地广播只能使用动态注册的方式因为静态注册一般用于在应用启动时自动接收待定事件而这些广播一定是全局广播 1本地广播的使用 1创建接收器还是常规操作 public class MyLocalBroadcastReceiver extends BroadcastReceiver {private static final String TAG MyLocalBroadcastReceiver;Overridepublic void onReceive(Context context, Intent intent) {Log.i(TAG, onReceive: 收到了本地广播);} } 2通过LocalBroadcastManager类注册接收器 //获取localBroadcastManager类 localBroadcastManager LocalBroadcastManager.getInstance(this);IntentFilter intentFilter1 new IntentFilter(TextUtil.ACTION_SEND_LOACL_RESULT);localBroadcastManager.registerReceiver(myLocalBroadcastReceiver, intentFilter1); 3发送广播 Intent intent new Intent(); intent.setAction(TextUtil.ACTION_SEND_LOACL_RESULT); intent.putExtra(TextUtil.KEY_RESULT, 这是本地广播); //发送本地广播 localBroadcastManager.sendBroadcast(intent); 4解除注册 Override protected void onDestroy() {super.onDestroy();localBroadcastManager.unregisterReceiver(myLocalBroadcastReceiver); }
http://www.hkea.cn/news/14561786/

相关文章:

  • 简述网站设计的开发流程wordpress 没有模板选项
  • 自己做网站,为什么出现403问答社交网站开发
  • 常州制作网站网站第三方统计代码
  • 温州阀门网站建设网站快速收录方法
  • 织梦系统怎么做单页网站北京seo优化
  • 企业网站数据库音乐网站整站程序
  • 长沙企业网站模板wordpress导出淘宝
  • 刚学完网站开发军事新闻最新
  • 免费软件不收费网站建筑单位资质
  • 石家庄建站爱 做 网站
  • 求推荐专门做借条的网站网站更改机房备案
  • 目前做哪个网站致富东莞工作装制作
  • 泉州建设网站制作怎样做网络推广信任豪升网络好
  • 个人网站备案条件湖南系统开发
  • 网站建设平台 三合一wordpress衔接出错
  • 甘南网站建设公司如何做软件开发
  • app开发公司tianpinkeji济南关键词优化平台
  • 国内做音乐网站长沙有哪些正规传媒公司
  • 帮人做彩票网站专业网站建设明细报价表
  • 推荐一些外国做产品网站wordpress 链接管理员
  • 佛山市城乡住房建设局网站首页冷饮网站开发背景意义
  • 上海 建网站微信网页版网址
  • 百色网站建设公司自己做网站卖什么
  • 男女做暧网站建筑业大数据服务平台官网
  • 怎么做一个网站页面上海房产网二手房出售
  • html5 网站个人网站备案材料
  • 网站属于什么公司搜索引擎网站提交入口
  • 怎样提高网站流量沈阳网站开发公司
  • 网站更新前知道内容企业网站 设
  • 网站设计素养房山区文化活动中心有wifi吗