Android使用handler实现简单的定时器,主线程每秒刷新UI
来源:互联网 发布:数据库外键和主键 编辑:程序博客网 时间:2024/06/17 17:13
实现方式:
1、首先实例化handler:
mHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case TAG:
xxxWantToDo();//在这里写需要刷新完成的代码
removeMessages(TAG);
sendEmptyMessageDelayed(TAG, 1000);//这里想几秒刷新一次就写几秒
break;
}
}
};
}
就这么简单,在xxxWantToDo()写想要在定时器内的实现代码就OK了,removeMessages(TAG)来确保每秒执行一次,代码很简单,容易理解,至于TAG想怎么写就看个人的习惯了,一般随便定义的一个int就满足了,当然msg.what也可以根据代码情况进行修改,这里只是举了个栗子。
2、注意,一定要注意,写完上面的代码,计时器还不能完成运行,因为需要发一个信息来开启这个无限的循环,在需要开启定时器的地方调用mHandler.sendEmptyMessage
(TAG); 这样才能正常开启handler。
3、由于handler会一直无限循环下去,所以不建议在项目中简单的这么搞,最好在OnDestory()(也可以在onStop()里,这里可以根据代码逻辑灵活变动)里写一个boolean 的标志位(isDestory),实例化为false,在OnDestory()中:
isDestory=true;
handler中改为
mHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case TAG:
xxxWantToDo();//在这里写需要刷新完成的代码
removeMessages(TAG);
if(!isDestory)
{ sendEmptyMessageDelayed(TAG, 1000);//这里想几秒刷新一次就写几秒}
break;
}
}
};
}
- Android使用handler实现简单的定时器,主线程每秒刷新UI
- Android,UI主线程与子线程 handler,thread使用
- 理解的主线程刷新UI:
- android学习记录(十一)在非主线程实现更新ui------------Handler
- Android子线程更新UI主线程方法之Handler
- Android子线程更新UI主线程方法之Handler
- Android Handler:子线程发消息到UI主线程
- android 的Handler处理UI主线程外的耗时操作
- Android在非UI主线程操作UI的简单方法
- Android 实现异步刷新UI,定时器等的多种实现方案
- 使用Handler实现定时器
- 关于在UI中刷新主线程的问题
- Android使用Handler实现子线程与子线程、主线程之间通信
- Handler更新主线程UI常用方法
- Android 定时器的实现方式(TimerTask、Handler)及 Handler使用解析
- Android 定时器的实现方式(TimerTask、Handler)及 Handler使用解析
- Android开发之使用Handler刷新UI控件
- Android编程:定时器和Handler的使用
- Vue 头部动态添加数据
- 关于程序员的59条搞笑但却真实无比的编程语录
- 创建maven项目时报关于archetypes的错误
- Linux常用命令大全
- react-native报 Execution failed for task ':app:mergeDebugResources'错误
- Android使用handler实现简单的定时器,主线程每秒刷新UI
- HDU 5015 233 Matrix --矩阵快速幂
- CSS中margin和padding的区别
- 【Linux-nfs服务器】挂载后无法显示目录内容的情况之一
- 屏幕抓取和其他实用程序
- eclipse中创建springboot demo
- unity下载
- caffe随记(八)---使用caffe训练FCN的pascalcontext-fcn32s模型(pascal-context数据集)
- SQL语句详细汇总