通过实际项目的练习,掌握了几种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中几种常用的定时器和延时方法的更多相关文章

  1. Java中几种常用数据类型之间转换的方法

    Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...

  2. Android中五种常用的menu

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  3. Android UI开发第二十九篇——Android中五种常用的menu(菜单)

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  4. Android中几种常用的话框

    1.普通对话框: Builder alert=new AlertDialog.Builder(MainActivity.this); alert.setTitle("提示"); a ...

  5. Android中三种超实用的滑屏方式汇总(转载)

    Android中三种超实用的滑屏方式汇总   现如今主流的Android应用中,都少不了左右滑动滚屏这项功能,(貌似现在好多人使用智能机都习惯性的有事没事的左右滑屏,也不知道在干什么...嘿嘿),由于 ...

  6. Android中四种补间动画的使用示例(附代码下载)

    场景 Android中四种补间动画. 透明度渐变动画 旋转动画 缩放动画 平移动画 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程 ...

  7. JavaScript中,有三种常用的绑定事件的方法

    要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的 ...

  8. 几种常用的JS类定义方法

    几种常用的JS类定义方法   // 方法1 对象直接量var obj1 = {    v1 : "",    get_v1 : function() {        return ...

  9. 【Android 界面效果28】Android应用中五种常用的menu

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

随机推荐

  1. 按位或:多项式,FWT,min-max容斥

    Description: 刚开始你有一个数字0,每一秒钟你会随机选择一个$[0,2^n)$的数字,与你手上的数字进行或(C++, C 的 |, Pascal 的 or)操作. 选择数字i的概率是$p_ ...

  2. 《Netty Redis Zookeeper 高并发实战》 勘误

    <Netty Redis Zookeeper 高并发实战> 勘误与申明 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 勘误一 文字问题: Page1 J ...

  3. MongoDB增删改查表文档

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...

  4. java8-新的日期API

    背景 java的日期和时间API设计不理想,java8引入新的时间和日期API就是为了解决这个问题. 老的日期API的核心类 缺点 Date 月从0开始,年最小从1900年开始,没有时区的概念 Cal ...

  5. C++入门到理解阶段二核心篇(1)——c++面向对象概述、内存分析、引用

    1.c++内存分区模型 c++程序在运行的过程中,内存会被划分为以下四个分区 代码区:程序的所有程序的二进制代码,包括注释会被放到此区 全局区:存放静态变量.全局变量.常量(字符串常量和const修饰 ...

  6. Vue 从入门到进阶之路(十三)

    之前的文章我们介绍了一下 vue 中的作用域插槽,本章我们来看一下动态组件与 v-once 指令. <!DOCTYPE html> <html lang="en" ...

  7. 01-Java类加载机制详解

    类的加载过程 在使用java命令运行主类(main)的时候,首先要通过类加载器将类加载到JVM内存中去.主类在运行过程中如果用到其他的类就会逐步加载这些类.jar包里的类并不是一次性加载的,是使用的时 ...

  8. 利用 python 分析基金,合理分析数据让赚钱赢在起跑线!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 白玉无冰 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...

  9. Python实现一个键对应多个值的字典(multidict)

    一个字典就是一个键对应一个单值的映射.如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中, 比如列表或者集合里面.比如,你可以像下面这样构造这样的字典: d = { 'a' : [1, ...

  10. Java操作数据库——在JDBC里使用事务

    Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...