Android_时间服务
接着上一节,这次我查看了Android的时间服务,觉得帮助很大,解决了我很多疑问,下面我就自己总结了一下,加深了自己的印象,好记性不如烂笔头,还真讲得很不错,收下吧?看下图如何利用线程更新UI组件
重点:
1】 通过两个类Handler 和Timer 类,结合线程里处理UI组件的模式,把很多知识系统的梳理。
2】 预约时间Handler: 主要是如下3个方法来执行Runnable 对象
handler.post(Runnable r);
handler.postAtTime(Runnable r,long uptimeMillis);
handler.postDelayed(Runnable r,long delayMillis);
具体的可以自己查看API...
3】 虽然Timer和Handler 的执行任务代码都是放在run方法里,但是Timer是在线程中执行run方法。而Handler是将执行的动作添加到Android系统的消息队列里,因此:在Timer的run方法里不能够直接访问UI组件,因为线程内不能跨线程。要是实现的话就要利用Handler接受Message:
关键代码如下:
//更新UI的方法
private void setUI() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
/**
* 这里我们不能直接调用UI界面的组件来更新,而应该使用Handler 来接收消息更新,这里只要发出消息就可以了
*/
Message message = new Message();
message.what = 1;// 可以发送多个消息,然后Handler接受不同的消息响应不同的时间
handler.sendMessage(message);
}
}, 0, 500);// 间隔0.5秒,没有延迟立即执行任务
}
/** 利用线程更新GUI组件的方法 */
private Handler handler = new Handler() {
// handler接受消息,这里来处理UI组件的更新
public void handleMessage(Message msg) {
// UI组件处理应该在这里,而不应该在任务TimerTask 的run里面
switch (msg.what) {
case 1:
// 下面是进程条的更新
int currentProgress = bar.getProgress() + 1;
if (currentProgress > bar.getMax())
currentProgress = 0;
bar.setProgress(currentProgress);
break;
default:
break;
}
};
};
Android_时间服务的更多相关文章
- Android_设备隐私获取,忽略6.0权限管理
1.前言 (1).由于MIUI等部分国产定制系统也有权限管理,没有相关api,故无法判断用户是否允许获取联系人等隐私.在Android 6.0之后,新增权限管理可以通过官方api判断用户的运行状态: ...
- Windows Server 2016-Windows 时间服务概览
同步 Windows 时间服务 (W32Time) 的日期和时间的所有运行 Active Directory 域服务 (AD DS) 的计算机. 时间同步至关重要的许多 Windows 服务和的业务线 ...
- NTP时间服务
时间服务 NTP:Network Time Protocol 作用:用来给其他主机提供时间同步服务 NTP的配置文件 /etc/ntp.conf NTP相关的命令 date:显示/修改系统时间 hwc ...
- 手动配置 Windows 时间服务
手动配置 Windows 时间服务 要将内部时间服务器配置为与外部时间源同步,请按照下列步骤操作: 将服务器类型更改为 NTP. 为此,请按照下列步骤操作: 选择 “开始” . “运行”,键入 reg ...
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
1.功能概要 Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示. (1).使用多线程加载图片(2) ...
- 网络时间服务和chrony
⽹络时间服务和chrony 实验练习: 准备实验环境: 可用的centos6.7系统. centos6 :192.168.37.6 centos7 :192.168.37.7 关闭selinux 关闭 ...
- Centos 7 最小化时间服务部署配置
基本原理 Centos 7 我所了解有两种时间服务,NTPD与chronyd:两者对Centos 7 的支持都很好,有对chrony非常夸赞的,不过我这里只讲ntpd:有对chrony有想法的可以自行 ...
- Android_安卓为按钮控件绑定事件的五种方式
一.写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick ...
- ArcGIS for Android_离在线一体化核心技术基本流程
核心思想: a.数据首先存储于ArcSDE中,要素添加GlobleID,图层数据启用数据归档或开启版本化.b.然后将ArcSDE数据库托管于ArcGIS for Server作为数据存储.c.在Arc ...
随机推荐
- css3动画属性中的transition属性
一.语法 transition: property duration timing-function delay; 值 描述 transition-property 规定设置过渡效果的 CSS 属性的 ...
- java线程知识点
1. 进程与线程 一个进程拥有多个线程,多个线程共享进程的内存块.操作系统不分配新的内存,因此线程之间通信很容易.不同的进程因处于不同的内存块,因此进程之间通信较为困难. 进程:每个进程都有独立的代码 ...
- SVN 中trunk、branches、tags都什么意思?
1.trunk是主分支,是日常开发进行的地方. 2.branches是分支.一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中.又比如为不同用户客制化的版 ...
- Tricks Device (hdu 5294 最短路+最大流)
Tricks Device Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- 10 Technologies That will Shape Future Education--reference
http://dizyne.net/technologies-that-will-shape-future-education/ Technology is on the rise and with ...
- linux 常识笔记 20160621
Linux分四部分 Linux内核 GNU工具组建 图形化桌面环境 应用软件 Linux系统的核心是内核,内核控制着计算机系统上的所有硬件和软件:必要时分配硬件,有需要时执行软件. 内核负责四项主要功 ...
- 手把手教你使用UICollectionView写公司的项目
在很多app中都有这样通用的页面,一直没有机会使用UICollectionView,只是简单的看过他的使用方法.今天公司美工出图,使用了他,并且遇到了好多的坑.记录一下过程,不确定使用的方法是不是最优 ...
- 万能的Entry,两个变量的Model/JavaBean再也不用写了!
前言 很多时候传数据需要只含两个变量的Model/JavaBean,但就为了两个变量去写一个Model/JavaBean实在是麻烦,而且类型固定重用性低.比如: 1.网格显示的头像-名称 需要 Str ...
- 禁用 Browser Link,在浏览器调试的时候回出现大量的get,post数据。
VS2013新增的Browser Link功能虽然“强大”,但默认是开启的,很烦人!
- Python 文件操作模块 shutil 详解
1.导入模块 shutil import shutil 2.shutil方法 2.1 shutil.copy(src,dst) //将 src 复制到 dst 保留文件权限 例:将Alan复制到 ...