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

新塘17网站一起做网店官网做舞台灯光的在哪些网站接订单呢

新塘17网站一起做网店官网,做舞台灯光的在哪些网站接订单呢,自己做菠菜网站,安装wordpress提示建立数据库连接时出错1 BroadcastReceiver是什么 BroadcastReceiver#xff08;广播接收器#xff09;即广播#xff0c;是一个全局的监听器。 Android 广播分为两个角色#xff1a;广播发送者、广播接受者。 2 广播类型 广播按照类型分为两种#xff0c;一种是全局广播#xff0c;另一种…1 BroadcastReceiver是什么 BroadcastReceiver广播接收器即广播是一个全局的监听器。 Android 广播分为两个角色广播发送者、广播接受者。 2 广播类型 广播按照类型分为两种一种是全局广播另一种是本地广播 全局广播就是发出的广播被其他任意应用程序接收或者可以接收来自其他任意应用程序的广播。 本地广播则是只能在应用程序内部进行传递的广播广播接收器也只能接收内部的广播不能接收其他应用程序的广播 广播按照机制分两种一种是标准广播一种是有序广播 标准广播是一种异步的方式来进行传播的所有接收者都会接收事件不可以被拦截不可以被修改 有序广播是一种同步执行的广播按照优先级一级一级的向下传递接收者可以修改广播数据也可以终止广播事件。 3 BroadcastReceiver原理 // 模型 基于消息的发布/订阅事件模型使用了设计模式中的观察者模式 // 模型角色 1.消息订阅者 2.消息发布者 3.消息中心AMS即Activity Manager Service // 原理描述 1.广播接收者 通过Binder机制在AMS注册 2.广播发送者 通过Binder机制向AMS发送广播 3.AMS根据广播发送者要求在已注册列表中寻找合适的广播接收者(寻找依据IntentFilter/Permission) 4.AMS将广播发送到合适的广播接收者相应的消息循环队列中 5.广播接收者通过消息循环拿到此广播并回调onReceive() 4 动态注册 给出一个示例用BroadcastReceiver实现2个activity之间的通信点击A页面跳转到B页面在B页面发送广播A页面收广播 //AActivity.java package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View; import android.widget.Toast;import androidx.annotation.Nullable;public class AActivity extends AppCompatActivity {private DynamicBRReceiver dynamicBRReceiver;Overrideprotected void onCreate(Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.a_activity_layout);// 动态注册广播接收器dynamicBRReceiver new DynamicBRReceiver();IntentFilter itFilter new IntentFilter();itFilter.addAction(com.example.broadcasttest.DynamicBRReceiver);registerReceiver(dynamicBRReceiver, itFilter);findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {Intent intent new Intent(AActivity.this, BActivity.class);startActivity(intent);}});}Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(dynamicBRReceiver);} }// BActivity.javapackage com.example.myapplication;import android.content.ComponentName; import android.content.Intent; import android.os.Bundle; import android.view.View; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity;public class BActivity extends AppCompatActivity {Overrideprotected void onCreate(Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.b_activity_layout);findViewById(R.id.btn_send).setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {//发送广播// 动态注册方式发送Intent intent new Intent(com.example.broadcasttest.DynamicBRReceiver);sendBroadcast(intent);}});} } java // DynamicBRReceiver.java package com.example.myapplication;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast;public class DynamicBRReceiver extends BroadcastReceiver {Overridepublic void onReceive(Context context, Intent intent) {Toast.makeText(context, DynamicBRReceiver: 收到广播, Toast.LENGTH_SHORT).show();} }注意 1.广播接收器接收到相应广播后会自动回调onReceive方法 2.一般情况下onReceive方法会涉及与其它组件之间的交互如发送Notification、启动Service 3.默认情况下广播接收器运行在UI线程因此onReceive方法不能执行耗时操作否则将导致ANR。 5 静态注册 静态注册的方式需要在AndroidManifest.xml中注册 receiver android:namecom.example.myapplication.StaticBRReceiverintent-filteraction android:namecom.example.broadcasttest.StaticBRReceiver //intent-filter/receiver// BActivity.javapackage com.example.myapplication;import android.content.ComponentName; import android.content.Intent; import android.os.Bundle; import android.view.View; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity;public class BActivity extends AppCompatActivity {Overrideprotected void onCreate(Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.b_activity_layout);findViewById(R.id.btn_send).setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {// 静态注册方式发送Intent intent new Intent();intent.setComponent(new ComponentName(BActivity.this, StaticBRReceiver.class));sendBroadcast(intent);}});} }// StaticBRReceiver.java package com.example.myapplication;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast;// 静态注册 public class StaticBRReceiver extends BroadcastReceiver {Overridepublic void onReceive(Context context, Intent intent) {Toast.makeText(context, StaticBRReceiver: 收到广播, Toast.LENGTH_SHORT).show();} } 6 动态注册和静态注册的区别 // 使用方式 静态注册是在AndroidManifest文件中使用receiver标签注册的动态注册是在代码中调用Context.registerReceiver方法 // 特点 静态注册是常驻广播不受任何组件的生命周期影响应用程序关闭后依旧可以会被系统调用缺点是耗电占内存 动态注册是非常驻广播灵活跟随组件的生命周期变化组件结束广播结束在组件结束之前必须移除广播接收器 // 应用场景: 当需要时刻监听广播时使用静态注册方式当只需要在特定时刻监说明听广播时使用动态注册的方式
http://www.huolong8.cn/news/63636/

相关文章:

  • 武功网站建设阳东城乡规划建设局网站
  • 那个网站可以做宣传电商网站平台有哪些功能模块
  • 网站开发面试内容东莞网络推广外包托管
  • 教做公众号的网站外贸网站制作怎么选
  • wordpress建站方便吗个人网站建设方案书怎么写
  • 自己弄个网站要多少钱能被百度收录的建站网站
  • siteservercms做的网站在后台进行修改教程怎么建设电子商城网站
  • 个人网页模板关于爱国seo搜索引擎优化书籍
  • 中国建设银行官网站额度申请网站单页设计
  • 什么样的网站做百度广告好酒泉如何做百度的网站
  • 网站顶部flash下载腾讯云网站建设流程图
  • 网站建设怎么把代码放入网站上网上商城网站建设
  • 海鲜网站开发目的在于重庆网站建设与网络推广
  • 做网站 然后百度推广石家庄网站建设联系方式
  • 建设部网站建造师管理号汕头论坛贴吧
  • 2017做网站赚钱软件开发平台是什么意思
  • 建立网站解析会员视频是犯什么罪你们需要网站建设
  • 网站文章怎么做内链上海猎头公司排名
  • 一家做公司评估的网站seo搜索引擎实训心得体会
  • 重庆建设银行官方网站首页自己的店铺如何弄小程序
  • 网站做竞价对seo有影响吗清河网站建设
  • 广州网站建设技术方案做多语言网站多少钱
  • 网站开发资格证书山西省普通高考考生网上服务平台
  • 网站建设课的感想威海网站建设是什么
  • 哪个通讯公司的网络好网站标题具体怎样优化
  • PHP+MySQL网站开发全程实例安阳县事业单位招聘
  • 网站后台系统访问简述营销型企业网站建设的内容
  • 企业网站 优帮云移动端模板网站建设
  • 做网站用别人的图片做视频的网站带模板
  • 手机免费制作网站模板网络营销推广策划步骤