Android中几种常用的定时器和延时方法
通过实际项目的练习,掌握了几种android基本定时器和延时的用法,这里我想总结一下作为自己的收获,下面列出的是比较简洁的模式,方便简单地在程序中直接调用。
一、三种常用的定时器
1.Handler类的postDelayed方法:

1 Handler mHandler = new Handler();
2 Runnable r = new Runnable() {
3
4 @Override
5 public void run() {
6 //do something
7 //每隔1s循环执行run方法
8 mHandler.postDelayed(this, 1000);
9 }
10 };
11
12
13 主线程中调用: mHandler.postDelayed(r, 100);//延时100毫秒

2.用handler+timer+timeTask方法:

1 Handler handler = new Handler() {
2 @Override
3 public void handleMessage(Message msg) {
4 if (msg.what == 1){
5 //do something
6 }
7 super.handleMessage(msg);
8 }
9 };
10
11 Timer timer = new Timer();
12 TimerTask timerTask = new TimerTask() {
13 @Override
14 public void run() {
15 Message message = new Message();
16 message.what = 1;
17 handler.sendMessage(message);
18 }
19 };
20 主线程中调用:timer.schedule(timerTask,1000,500);//延时1s,每隔500毫秒执行一次run方法

3.Thread+handler方法:

1 Handler handler = new Handler() {
2 @Override
3 public void handleMessage(Message msg) {
4 if (msg.what == 1){
5 //do something
6 }
7 super.handleMessage(msg);
8
9 }
10 };
11
12 class MyThread extends Thread {//这里也可用Runnable接口实现
13 @Override
14 public void run() {
15 while (true){
16 try {
17 Thread.sleep(1000);//每隔1s执行一次
18 Message msg = new Message();
19 msg.what = 1;
20 handler.sendMessage(msg);
21 } catch (InterruptedException e) {
22 e.printStackTrace();
23 }
24
25 }
26 }
27 }
28 主线程中调用:new Thread(new MyThread()).start();

二、三种延时的快捷方法:
1.Handler的postDelayed方法:

1 new Handler().postDelayed(new Runnable() {
2
3 @Override
4 public void run() {
5 //do something
6 }
7 }, 1000); //延时1s执行

2.timer + TimerTask方法:

1 timer = new Timer();
2 timer.schedule(new TimerTask() {
3 @Override
4 public void run() {
5 //do something
6 }
7 },1000);//延时1s执行

3.Thread方法:

1 new Thread(new MyThread()).start();
2 new Thread(new Runnable() {
3 @Override
4 public void run() {
5 try {
6 Thread.sleep(1000);//延时1s
7 //do something
8 } catch (InterruptedException e) {
9 e.printStackTrace();
10 }
11 }
12 }).start();

Android中几种常用的定时器和延时方法的更多相关文章
- Java中几种常用数据类型之间转换的方法
Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...
- Android中五种常用的menu
Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...
- Android UI开发第二十九篇——Android中五种常用的menu(菜单)
Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...
- Android中几种常用的话框
1.普通对话框: Builder alert=new AlertDialog.Builder(MainActivity.this); alert.setTitle("提示"); a ...
- Android中三种超实用的滑屏方式汇总(转载)
Android中三种超实用的滑屏方式汇总 现如今主流的Android应用中,都少不了左右滑动滚屏这项功能,(貌似现在好多人使用智能机都习惯性的有事没事的左右滑屏,也不知道在干什么...嘿嘿),由于 ...
- Android中四种补间动画的使用示例(附代码下载)
场景 Android中四种补间动画. 透明度渐变动画 旋转动画 缩放动画 平移动画 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程 ...
- JavaScript中,有三种常用的绑定事件的方法
要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的 ...
- 几种常用的JS类定义方法
几种常用的JS类定义方法 // 方法1 对象直接量var obj1 = { v1 : "", get_v1 : function() { return ...
- 【Android 界面效果28】Android应用中五种常用的menu
Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...
随机推荐
- 按位或:多项式,FWT,min-max容斥
Description: 刚开始你有一个数字0,每一秒钟你会随机选择一个$[0,2^n)$的数字,与你手上的数字进行或(C++, C 的 |, Pascal 的 or)操作. 选择数字i的概率是$p_ ...
- 《Netty Redis Zookeeper 高并发实战》 勘误
<Netty Redis Zookeeper 高并发实战> 勘误与申明 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 勘误一 文字问题: Page1 J ...
- MongoDB增删改查表文档
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...
- java8-新的日期API
背景 java的日期和时间API设计不理想,java8引入新的时间和日期API就是为了解决这个问题. 老的日期API的核心类 缺点 Date 月从0开始,年最小从1900年开始,没有时区的概念 Cal ...
- C++入门到理解阶段二核心篇(1)——c++面向对象概述、内存分析、引用
1.c++内存分区模型 c++程序在运行的过程中,内存会被划分为以下四个分区 代码区:程序的所有程序的二进制代码,包括注释会被放到此区 全局区:存放静态变量.全局变量.常量(字符串常量和const修饰 ...
- Vue 从入门到进阶之路(十三)
之前的文章我们介绍了一下 vue 中的作用域插槽,本章我们来看一下动态组件与 v-once 指令. <!DOCTYPE html> <html lang="en" ...
- 01-Java类加载机制详解
类的加载过程 在使用java命令运行主类(main)的时候,首先要通过类加载器将类加载到JVM内存中去.主类在运行过程中如果用到其他的类就会逐步加载这些类.jar包里的类并不是一次性加载的,是使用的时 ...
- 利用 python 分析基金,合理分析数据让赚钱赢在起跑线!
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 白玉无冰 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...
- Python实现一个键对应多个值的字典(multidict)
一个字典就是一个键对应一个单值的映射.如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中, 比如列表或者集合里面.比如,你可以像下面这样构造这样的字典: d = { 'a' : [1, ...
- Java操作数据库——在JDBC里使用事务
Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...