设为首页 加入收藏

TOP

Android应用实例之计时器之通过Service&BroadcastReceiver实现UI动态更新
2014-11-24 12:23:37 来源: 作者: 【 】 浏览:0
Tags:Android 应用 实例 计时器 通过 Service&BroadcastReceiver 实现 动态 更新

实现的功能:计时器。


实现的思路:1)后台Service每隔1秒发送广播通知时间已发生变化;


2)UI层(Activity)通过BroadcastReceiver接收到广播,更新显


示的时间。


关键技术点:Service的应用、BroadcastReceiver的应用


说明:1)Activity与通过startService方法启动的Service之间无法直接进行通信,但是借助BroadcastService可以实现两者之间的通信。


2)实现计时器的方式有很多种,比如通过Thread的sleep等,此处只是演示Service与BroadcastService的组合应用(可以将Service中获取当前时间的操作想象为非常耗时的操作,所以不宜直接在UI层来做)。


3)此处演示的Service与BroadcastService的组合是“单向通信”即:UI层只是被动接收Service发来的广播,而没有主 动发送广播控制后台Service。下一篇文章将会编写一个实例进行演示“双向通信”。


第一步:新建一个工程,命名为DynamicUI,Activity命名为DynamicUIActivity。


修改布局文件main.xml,代码如下:



DynamicUIActivity类代码如下:



第二步:实现自定义BroadcatReceiver类UITimeReceiver,负责接收从后台Service发送过来的广播,获取最新时间数据后更新UI层组件。本类最好作为UI层(Activity)的内部类,此处将其作为外部类实现(通过xml文件配置注册BroadcatReceiver,如果是内部类如何通过xml文件配置目前没找到),有意显示如此做导致代码不够优雅。


UITimeReceiver代码如下:



第三步:实现自定义Service类TimeService,其代码如下:



第四步:修改AndroidManifest.xml文件,代码如下:



第五步:运行程序,效果如下:



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android开发之Toast工具类(实现.. 下一篇Android图像相关

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)