Android考虑到线程安全问题,不允许在线程中执行UI线程,在Android中,有一个很有意思的类:android.os.Handler,这个可以实现各处线程间的消息传递。先看段代码,这个实例化了一个Handler,Handler可以通过Message在多个线程通讯,我这里做的是定时recLen加1,然后以一定的格式,显示到recTime上(UI线程上的操作)。

final Handlerhandler=newHandler(){

public void handleMessage(Message msg) {

switch (msg.what) {

case 1:

recLen++;

recTime.setText(GetRecTime(recLen));

break;

}

super.handleMessage(msg);

}

};

下面定实例化一个TimerTask,这个是为Timer提供一个定时执行的内容。我在这个方法中加的是给Handler一个发送消息功能,因这在Timer的线程中,无法直接操作UI线程。

TimerTasktask=newTimerTask(){

public void run() {

Messagemessage=newMessage();

message.what=1;

handler.sendMessage(message);

}

};

剩下的工作就简单多,添加一个Timer,可以让程序运行起来了

timer=newTimer(true);

timer.schedule(task,1000, 1000); //延时1000ms后执行,1000ms执行一次

//timer.cancel(); //退出计时器

说到这里,也许有些还感觉云里雾里,笔者好久没写东西,也不知道怎么把问题说的更明白,这个再贴上笔者开始的错误写法,对比错误写法,也许能让大家更快的明白过来。

TimerTasktask=newTimerTask(){

public void run() {

recLen++;

recTime.setText(GetRecTime(recLen));//直接在TimerTask中操作UI线程,单步调试的时候发现,程序根本就没执行到这里

}

};

timer=newTimer(true);

timer.schedule(task,1000, 1000);

【编辑推荐】

【责任编辑:李程站 TEL:(010)68476606】

点赞 0

android多线程计时器,Android 计时器Timer用法相关推荐

  1. android多线程文章,Android 多线程处理之多线程用法大集合

    类型:服务器区大小:21KB语言:中文 评分:6.6 标签: 立即下载 第 4 页 全部源码 全部源码: 1 package com.bvin.exec; 2 3 import java.io.IOE ...

  2. android 多线程类,Android 多线程处理之多线程用法大集合

    类型:服务器区大小:21KB语言:中文 评分:6.6 标签: 立即下载 第 3 页 ExecutorServie线程池 5.ExecutorServie线程池 通过Executors的静态方法来创建, ...

  3. Android多线程优劣,Android 开发中用到的几个多线程解析

    在开发工程中线程可以帮助我们提高运行速度,Android开发中我知道的线程有四个一个是老生长谈的Thread,第二个是asyncTask,第三个:TimetTask,第四个是Looper,四个多线程各 ...

  4. android 多线程 场景,Android多线程总结

    场景一:假如APP需要访问两个接口得到数据,在两个接口数据返回时再进行操作下一步. 是不是第一时间想到就是写两个线程就完事了? 上面的解决方案弊端很明显是吧~,~囧.线程无法得知另一个线程的状态 解决 ...

  5. android 多线程封装,Android线程池封装库

    目录介绍 1.遇到的问题和需求 1.1 遇到的问题有哪些 1.2 遇到的需求 1.3 多线程通过实现Runnable弊端 1.4 为什么要用线程池 2.封装库具有的功能 2.1 常用的功能 3.封装库 ...

  6. android 多线程 js,android中的jstack,见见线程都在干嘛

    android中的jstack,看看线程都在干嘛 之前做java开发的时候,遇到进程卡住的情况都会用jstack来打印一个进程里的线程活动情况.到了安卓开发,发现没有这个命令了,很不习惯. googl ...

  7. android 多线程 崩溃,Android异常崩溃捕获

    Android系统碎片化造成应用程序崩溃严重,在模拟器上运行良好的程序安装到某款手机上说不定就会出现崩溃的现象.而且,往往都是程序发布之后在用户端出现了崩溃现象.所以在程序发布出去之后,如果出现了崩溃 ...

  8. android 多线程 加锁,android 多线程 — 从一个小例子再次品位多线程

    今天回味 volatile 时看到了别人的一个 Demo: class VolatileDemo() { var flag: Boolean = false fun read() { while (! ...

  9. android 多线程封装,Android 线程池的封装

    GlobalThreadPools.java: /** * 全局使用的线程池 */ public class GlobalThreadPools { private static String TAG ...

  10. Android 多线程之阻塞队列

    Android 多线程系列 Android 多线程之几个基本问题 阻塞队列 阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里取元素的线程.阻塞队列就是生产者存放元素 ...

最新文章

  1. 密码学===公钥和私钥解释
  2. 锁存器和触发器的区别
  3. 2019年春季学期第二周作业(文件指针)
  4. 关于软件产品服务有感
  5. net-snmp交叉编译出现 undefined reference to dlopen,dlsym,dlclose错误
  6. 处理训练集和测试集分布同的方法(对抗训练)
  7. Win10系统自带输入法怎么设置
  8. 国土空间规划的体系和内容
  9. GitHub使用笔记
  10. Spring Boot学习记之Maven
  11. 十分钟掌握Google Guice(上)
  12. 干细胞相关研究最新进展(2021年9月)
  13. 继续逼近FLASH效果
  14. Unity-动画机学习
  15. POJ 1273 Dinic
  16. Kaggle数据集之电信客户流失数据分析
  17. 电脑桌面删除的文件怎么找回?
  18. 【转载】OceanBase架构介绍
  19. 计算机技术水平考核试卷带答案,中小学教师计算机技术水平考核试卷笔试题带答案...
  20. gaussdb 优化建议

热门文章

  1. 37.go struct 结构
  2. 40. MySQL的权限与安全
  3. 20.Adding Javascript and CSS via Layout XML
  4. 2. assertion 断言
  5. 数据库表格数据导出到excel方法总结
  6. Burpsuit结合SQLMapAPI产生的批量注入插件
  7. cmd进入mysql界面的命令
  8. keyset与entryset
  9. 004. Asp.Net Routing与MVC 之二: 请求如何激活Controller和Action
  10. Spring——Java程序员的春天