一,Broadcast简介

 Broad cast 广播是广泛应用在应用程序之间传输信息的机制,而Broadcast Receiver是对发送出来的广播进行过滤接收并响应的一类组件

二,Broadcast机制

三,Broadcast使用方法

   private BroadcastReceiver broadcastReceiver = new BroadcastLowReceiver(){@Overridepublic void onReceive(Context context, Intent intent) {super.onReceive(context, intent);}};onReceive生命周期只有十秒 不能直接在里面写耗时操作应该发送Intent给Service来完成这里不能使用子线程l来解决 BroadcastReceiver生命周期很短 子线程还没有结束 Broadcast就先结束了

四,Broadcast类型和接受方法

1.静态注册广播

public class BroadcastLowReceiver extends BroadcastReceiver {private String TAH = "BatteryLowReceiver";@Override
public void onReceive(Context context, Intent intent) {Log.d("###","" + intent);
}

}

2.动态注册

public class MainActivity extends AppCompatActivity {//1.初始化
private BroadcastReceiver broadcastReceiver = new BroadcastLowReceiver(){@Overridepublic void onReceive(Context context, Intent intent) {super.onReceive(context, intent);}
};@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//2.注册广播IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_BATTERY_CHANGED);registerReceiver(broadcastReceiver,filter);
}@Override
protected void onDestroy() {super.onDestroy();//销毁广播unregisterReceiver(broadcastReceiver);
}

}

五,BroadcastReceiver的API

六,Broadcast应用实例

动态注册广播 获取电池电量
public class MainActivity extends AppCompatActivity {
//1.初始化
private BroadcastReceiver broadcastReceiver;
private TextView a ;
private TextView b ;
private TextView c ;@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);a = findViewById(R.id.a);b = findViewById(R.id.b);c = findViewById(R.id.c);
}@Override
protected void onResume() {super.onResume();Mbroadcast();
}private void Mbroadcast(){broadcastReceiver = new Mbroadcast();IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);registerReceiver(broadcastReceiver,intentFilter);}
@Override
protected void onDestroy() {super.onDestroy();//销毁广播unregisterReceiver(broadcastReceiver);
}class Mbroadcast extends BroadcastReceiver {public int health;public int level;public int status;@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (action == Intent.ACTION_BATTERY_CHANGED) {health = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_GOOD);level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_DISCHARGING);a.setText(health + "");b.setText(level + "");c.setText(status + "");}}}

Android四大组件之一 --Broadcast(广播通信)相关推荐

  1. Android四大组件之broadcast广播使用整理笔记

    一.广播机制概述 通常情况下在学校的每个教室都会装有一个喇叭,这些喇叭是接入到学校广播室的.如果有重要通知,会发送一条广播来告知全校师生.为了便于发送和接收系统级别的消息通知,Android系统也引入 ...

  2. android 广播解绑,Android四大组件之BroadCast

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Android四大组件之BroadCast 一.广播概述 Android应用可以从Android系统和其他Android ...

  3. Android四大组件之——Broadcast学习总结

    1.Broadcast概念 是一个全局的监听器,属于Android四大组件之一.Broadcast(广播)是一种广泛运用的在应用程序(APP)之间传输信息的机制.而BroadcastReceiver( ...

  4. android四大组件之四-BroadCast实现原理分析

    前言: 一开始的目标是解决各种各样的ANR问题的,但是我们知道,ANR总体上分有四种类型,这四种ANR类型有三种是和四大组件相对应的,所以,如果想了解ANR发生的根因,对安卓四大组件的实现原理必须要懂 ...

  5. Android 四大组件 -- BroadcastReceiver(广播)

    Android开发的四大组件分别是: 活动(activity),用于表现功能; 服务(service),后台运行服务,不提供界面呈现: 广播接受者(BroadcastReceive),勇于接收广播: ...

  6. Android四大组件之BroadCast(续)

    1.哪一个方法可以发送广播? activity.sendbroadcast or context.sentbroadcast or service.sendbroadcast 2.创建广播接受程序必须 ...

  7. Android四大组件之BroadCastReceiver

    1. 基本概念 在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver 是对发送出来的Broadcast 进行过滤接受并响应的一类 ...

  8. Android四大组件系列7 Broadcast广播机制(上)

    一 概述 广播 (Broadcast) 机制用于进程或线程间通信,广播分为广播发送和广播接收两个过程,其中广播接收者 BroadcastReceiver 是 Android 四大组件之一.Broadc ...

  9. Android 四大组件通信核心

    前言 系列文章: Android Activity创建到View的显示过程 Android 四大组件通信核心 Android 系统启动到App 界面完全展示终于明白(图文版) 我们知道Android ...

最新文章

  1. SharePoint服务器如果需要安装杀毒软件, 需要注意什么?
  2. VR应用开发遍地走的日子还有多远
  3. 【python图像处理】txt文件数据的读取与写入
  4. json.stringify()与json.parse()的区别,json.stringify()的妙用
  5. linux getline函数用法,get()与getline()
  6. vue中书写JSX一些坑-特殊属性名
  7. qt5 下载 及 qtcreator集成msvc2017 x64
  8. python发送邮件 退回_【破案了】python发邮件问题,求助!为什么总被退回?
  9. Google邮箱账号登陆存在异常活动怎么办?
  10. python win32gui模块详解_Python笔记_第二篇_面向过程_第二部分_4.常用模块的简单使用_窗体控制模块(win32con、win32gui)...
  11. linux挂载光盘的命令,linux下挂载(mount)光盘镜像文件、移动硬盘
  12. PLC PID优化系列之非线性参数整定(FC函数)
  13. 【聆听】泰戈尔诗集(二)
  14. 史上最全!国内外最新免费3D模型下载网站分享!
  15. 21考研:你是为了什么考研?
  16. java springboot安卓多商家校园点餐外卖APP源码
  17. 8月2日 jquery
  18. 基于Java毕业设计学习类视频网源码+系统+mysql+lw文档+部署软件
  19. uni-app 第三方360加固
  20. 数据安全三要素:机密性、完整性、身份验证

热门文章

  1. sscanf用法详解
  2. 不就是一个订票网站吗,12306的核心模型设计思路究竟复杂在哪儿?
  3. 16. 如何修改 SAP ABAP OData 模型,使其支持 $expand 操作
  4. 自如站在风口浪尖,长租公寓没有未来?
  5. UINavigationController介绍:6-自定义导航栏(锤子便签)
  6. Protocol与Delegate 使用方法详解
  7. switch用法 | 再学习switch用法
  8. 《C++程序设计实践》实验十二
  9. 人脸识别中的深度学习
  10. Unity3D 简单水面shader的实现