小编典典

在你的情况下,你正在使用线程。因此,你无法从ui线程以外的其他线程更新ui。所以你用runOnUithread。我建议你使用倒数计时器或处理程序。

1.CountDownTimer

这是另一个示例的链接。建议你检查倒计时计时器的链接。

倒数计时器,以分钟和秒为单位

例:

public class MainActivity extends Activity {

Button b;

TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv = (TextView) findViewById(R.id.textView1);

b= (Button) findViewById(R.id.button1);

b.setOnClickListener(new OnClickListener()

{

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

startTimer(200000);

}

});

}

private void startTimer(long time){

CountDownTimer counter = new CountDownTimer(30000, 1000){

public void onTick(long millisUntilDone){

Log.d("counter_label", "Counter text should be changed");

tv.setText("You have " + millisUntilDone + "ms");

}

public void onFinish() {

tv.setText("DONE!");

}

}.start();

}

}

2.你可以使用 Handler

范例:

Handler m_handler;

Runnable m_handlerTask ;

int timeleft=100;

m_handler = new Handler();

m_handlerTask = new Runnable()

{

@Override

public void run() {

if(timeleft>=0)

{

// do stuff

Log.i("timeleft",""+timeleft);

timeleft--;

}

else

{

m_handler.removeCallbacks(m_handlerTask); // cancel run

}

m_handler.postDelayed(m_handlerTask, 1000);

}

};

m_handlerTask.run();

3.计时器

计时器在其他线程上运行。你应该在ui线程上更新ui。采用runOnUiThread

范例:

int timeleft=100;

Timer _t = new Timer();

_t.scheduleAtFixedRate( new TimerTask() {

@Override

public void run() {

runOnUiThread(new Runnable() //run on ui thread

{

public void run()

{

Log.i("timeleft",""+timeleft);

//update ui

}

});

if(timeleft>==0)

{

timeleft--;

}

else

{

_t.cancel();

}

}

}, 1000, 1000 );

2020-03-06

android使用线程计时器,计时器的Android线程相关推荐

  1. android计时器正确写法,Android计时器正确应用方式解析

    昨天晚上在写一个Android计时器,开始认为很容易,用Java一般写法,结果发现计时器根本不能运行,但却不报任何错误,当时就呆在那了,不知道该怎么办了,后来在网上查了一下,Android考虑到线程安 ...

  2. Android开发实例——倒计时器——Android多线程编程

    文章目录 一.倒计时器功能描述 二.实现步骤 1.新建Activity,命名为ThreadDemo 2.设计ThreadDemo 的布局文件 3.编写ThreadDemo.java 文件代码 3.1 ...

  3. android 两种实现计时器时分秒的实现,把时间放在你的手中~

    可能我们在开发中会时常用到计时器这玩意儿,比如在录像的时候,我们可能需要在右上角显示一个计时器.这个东西其实实现起来非常简单. 只需要用一个控件Chronometer,是的,就这么简单,我都不好意思讲 ...

  4. 【Android 异步操作】线程池 ( 线程池使用示例 | 自定义线程池使用流程 | 自定义任务拒绝处理策略 | 完整代码示例 )

    文章目录 一.自定义线程池使用流程 二.自定义任务拒绝处理策略 三.完整代码示例 在博客 [Android 异步操作]线程池 ( 线程池简介 | 线程池初始化方法 | 线程池种类 | AsyncTas ...

  5. 【Android 异步操作】线程池 ( 线程池 reject 拒绝任务 | 线程池 addWorker 添加任务 )

    文章目录 一.线程池 reject 拒绝任务 二.线程池 addWorker 添加任务 在上一篇博客 [Android 异步操作]线程池 ( 线程池 execute 方法源码解析 ) 中 , 讲解 线 ...

  6. 【Android RTMP】RTMPDump 推流过程 ( 独立线程推流 | 创建推流器 | 初始化操作 | 设置推流地址 | 启用写出 | 连接 RTMP 服务器 | 发送 RTMP 数据包 )

    文章目录 安卓直播推流专栏博客总结 一. Java 层传入的 RTMP 推流地址处理 二. RTMPDump 推流线程 三. 创建 RTMP 对象 四. 初始化 RTMP 对象 五. 设置 RTMP ...

  7. Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码

    原文地址:http://android.xsoftlab.net/training/multiple-threads/index.html 引言 大量的数据处理往往需要花费很长的时间,但如果将这些工作 ...

  8. android判断主线程_android中从子线程切换到主线程,但是显得代码很臃肿,请教大牛是怎么自定义的?...

    小弟新手一枚,我先来说说我自己在项目中的做法.因为小弟只有JAVAWEB的基础所以只能使用线程池来处理线程之间的切换 1.为了使APP不出现卡顿和内存的低消耗.我是用了synchronized 和用一 ...

  9. android自定义秒表,Android实现的秒表计时器示例

    本文实例讲述了Android实现的秒表计时器.分享给大家供大家参考,具体如下: package com.liu.time; import java.util.Timer; import java.ut ...

  10. Android异步加载图像(含线程池,缓存方法)

    研究了android从网络上异步加载图像: (1)由于android UI更新支持单一线程原则,所以从网络上取数据并更新到界面上,为了不阻塞主线程首先可能会想到以下方法. 在主线程中new 一个Han ...

最新文章

  1. MindMaster Pro中文版
  2. win命令安装 安装cmake_win10下VSCode+CMake+Clang+GCC环境搭建教程图解
  3. MYSQL中用正则筛选一定的数据
  4. Kubernetes 1.9集群使用traefik发布服务
  5. export default 打包_贵阳【打包扣】价格
  6. linux中,一个目录的权限是777,普通用户为什么删除不了它呢?
  7. Atitit 容器化技术之道 attilax著 1. 概念 1 1.1. 容器是应用服务器中位于组件和平台之间的接口集合。 1 1.2. 有时候也指集合的概念,里面可以存放不同对象 2 1.3. 、新
  8. ArcGIS10.4下载及安装
  9. 决策树cart算法详解
  10. 装XP的电脑运行慢与实用解决办法
  11. BZOJ4134 ljw和lzr的hack比赛
  12. hexo博客yilia主题作者名字的更改
  13. 중국인이 한국인을 보는눈길
  14. python3 字符和数字(ASC码)转换
  15. 算法工程师月薪多少钱,算法工程师岗位需要学习哪些知识?
  16. 无线Mesh网络简介
  17. 吕梁市服务器维修,终端服务器 吕梁知名智能车检网络摄像机 电话交通技术监控机柜...
  18. 【简书如何创建专题?】
  19. 五年级信息技术上册教案计算机主机探秘,三年级信息技术第三课操作计算机教学设计...
  20. 详解图片放大软件PhotoZoom分屏预览功能

热门文章

  1. jQuery创建表格
  2. Excel 各版本每个sheet 最大行数限制
  3. 用低代码+BPM赋能知识文档管理系统
  4. 滑动验证码整合SpringBoot方案推荐
  5. 从零开始学习CANoe 系列文章目录汇总
  6. autocad ios 虚线_教大家AutoCAD2020怎么画虚线的方法
  7. css 动态设定div背景颜色
  8. 短视频软件开发,抖音源码,美颜SDK,提供开放API接口
  9. HDOJ2067_小兔的棋盘(卡塔兰数)
  10. 苹果id退出后数据还在吗_【保留数据修复】升级iOS 14后,出现白苹果的修复方法!...