当前课程知识点:Android应用开发基础 > 第五章 广播 > 5.1 Android广播概述 > 5.1.1 实践案例-手机电量显示
本届我们通过一个手机电量显示的实例
来介绍Android的广播
本节主要介绍广播
下面介绍获取设备中电池电量的过程
首先创建一个应用程序
设置应用程序的名字
进入布局文件
修改布局类型为线性布局LinearLayout
切换到design模式
新建TextView组件
设置id为tv_battery
设置文本为电池电量状态
设置gravity属性为center,使文字居中
设置layout_weight为1,layout_height为0
新建ProgressBar组件
设置layout_weight为0dp
设置线性布局的排列方式vertical
设置TextView ProgressBar组件
的layout_width为match_parent
设置ProgressBar的layout_height为2
新建一个Space组件
设置layout_height为0dp,layout_weight为1
设置progressbar的最大进度为100
当前进度为50
下面介绍eventBus框架类的实现过程
复制eventBus的jar包
切换project模式
选中libs文件夹,粘贴放入
右键选中该jar包 选中 add as library导入
新建一个EventData类
定义私有整数型变量iEventCode
用来区分事件类型
定义私有整数型变量iData
代表相关数据
定义各个变量的Get和Set方法
下面介绍广播类以及接收广播的实现过程
新建一个BatterReceiver类
继承BroadcastReceiver
Ctri+I 实现未实现的方法onReceive()
如果事件意图是
Intent.ACTION_BATTERY_CHNAGE
调用intent.getExtras()得到传过来的bundle
如果bundle不为空
bundle.get(BatteryManager.EXTRA_LEVAEL)
获取当前电量
强制转为整数类型
bundle.get(BatteryManager.EXTRA_SCALE)
来获取总电量
强制转为整数类型
用当前电量/总电量*100获取电量的百分比
新建EventData类对象
设置iEventCode等于1
调用EventBus.getDefault().post(mEventData)
下面介绍主视图MainActivity类的实现过程
选中activity_main布局文件
右键Generate-LayoutCreator
自动生成组件初始化的代码
OnCreate函数中调用initData方法
向EventBus发布事件
注册EventBus
定义私有变量mBatteryReceiver
在initData方法中实例化mBatteryReceiver
设置IntentFilter为
Intent.ACTION_BATTERY_CHANGED
为电源充电状态
注册mBatteryReceiver广播接收器
Subscribe 订阅事件
定义一个公有方法mainThread()
接收的参数为EventData
使用switch case语句
开关语句为event.getEventCode()
当case为1时
设置mTvBattery的文本为
"电池电量状态:" + event.getiBatterydata() + "%"
设置mProgressBar的进度为
event.getiData()
break表示执行完毕,defalut直接break
代码编写完成后运行程序
textview显示电量百分比
progressbar显示当前进度
这就是使用广播和eventBus获取手机电量的全部内容
请大家按照讲课的内容实现手机电量显示
在Android的模拟器和手机中分别运行
通过实例理解系统广播的内容获取
广播与Activity之间进行数据传递的流程
-Android Studio4.1.2安装常用问题汇总2021.3.15
-1.1 Android概述
--1.1 Android Studio安装与配置-实践案例
-1.1 Android概述--作业
-1.2 Android程序
-1.2 Android程序--作业
-1.3 Android程序调试
-1.3 Android程序调试--作业
-2.1 Activity概述
-2.1 Activity概述--作业
-2.2 Activity应用
-第2章 Android视图--2.2 Activity应用
-3.1 Activity布局
-3.1 Activity布局--作业
-3.2 Android基础组件
-3.2 Android基础组件--作业
-3.3 Android中级组件
-3.3 Android中级组件--作业
-3.4 Android适配器
-3.4 Android适配器--作业
-4.1 Fragment碎片组件
-4.1 Fragment碎片组件--作业
-4.2 ViewPager翻页类组件
-4.2 ViewPager翻页类组件--作业
-讨论:fragment与activity的生命周期有哪些不同?
-5.1 Android广播概述
-5.1 Android广播概述--作业
-5.2 Android广播工作原理
-5.2 Android广播工作原理--作业
-5.3 自定义广播
-第5章 广播--5.3 自定义广播
-5.4 有序广播
--5.4有序广播
-第5章 广播--5.4 有序广播
-6.1 系统服务概述
-6.1 系统服务概述--作业
-6.2 访问系统服务
-6.2 访问系统服务--作业
-6.3 自定义服务
-第6章 Android服务--6.3 自定义服务
-6.4 多线程
--6.4 多线程
-第6章 Android服务--6.4 多线程
-7.1 Android运行权限
-7.1 Android运行权限--作业
-7.2 URL URI概述
-第7章 内容提供者ContentProvider--7.2 URL URI概述
-7.3 ContentProvider概述
-第7章 内容提供者ContentProvider--7.3 ContentProvider概述
-7.4 访问通讯录
-第7章 内容提供者ContentProvider--7.4 访问通讯录
-7.5 课后作业案例
-8.1 相机服务
--8.1 相机服务
-8.1 相机服务--作业
-8.2 音视频服务
-8.2 音视频服务--作业
-9.1 网络服务概述
-9.1 网络服务概述--作业
-9.2 网络框架
--9.2 网络框架
-9.2 网络框架--作业
-9.3 Json
--9.3 Json
-第9章 网络技术--9.3 Json
-9.4 Volley
-第9章 网络技术--9.4 Volley
-10.1 文件存储
--10.1.3 实践案例-SharedPreference文件读写
-10.1 文件存储--作业
-10.2 数据库存储
-10.2 数据库存储--作业
-第1章 实训简介以及开发环境配置
-第2章 在线音乐播放器整体设计以及服务端开发
-第3章 在线音乐播放器-客户端开发
-第4章 在线音乐播放器-完整版
-第5章 QQ聊天项目
-第6章 在线点餐系统