Android中几种常用的定时器和延时方法
通过实际项目的练习,掌握了几种android基本定时器和延时的用法,这里我想总结一下作为自己的收获,下面列出的是比较简洁的模式,方便简单地在程序中直接调用。
一、三种常用的定时器
1.Handler类的postDelayed方法:
1 Handler mHandler = new Handler();2 Runnable r = new Runnable() {3 4 @Override5 public void run() {6 //do something7 //每隔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 @Override3 public void handleMessage(Message msg) {4 if (msg.what == 1){5 //do something6 }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 @Override3 public void handleMessage(Message msg) {4 if (msg.what == 1){5 //do something6 }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 @Override4 public void run() {5 try {6 Thread.sleep(1000);//延时1s7 //do something8 } catch (InterruptedException e) {9 e.printStackTrace(); 10 } 11 } 12 }).start();
转载于:https://www.cnblogs.com/derekhan/p/11043711.html
Android中几种常用的定时器和延时方法相关推荐
- JAVA中方法的类型转换_Java中几种常用数据类型之间转换的方法
Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...
- Android中五种常用的menu
Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...
- Android中五种常用对话框的使用
场景 Android中常用的五种对话框为 常规对话框.带列表的对话框.自定义的对话框.带进度条的对话框.带日期选择器的对话框. 注: 博客: https://blog.csdn.net/badao_l ...
- Android UI开发第二十九篇——Android中五种常用的menu(菜单)
Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...
- 看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断。【详细!小白也能看懂!】
看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断. A. 软件喂狗 B. 处理器温度过高 C. 外部中断 D. 看门狗定时器超时 解析: 思考方式: 每个 ...
- Android中四种补间动画的使用示例(附代码下载)
场景 Android中四种补间动画. 透明度渐变动画 旋转动画 缩放动画 平移动画 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的 ...
- android中几种定位方式详解
目录 前言: 1.GPS定位 2.NETWORK定位 3.AGPS定位 4.基站定位 5.WIFI定位 6.混合定位 目前,移动端大致通过三种方式来进行设备定位:GPS.基站.wifi.本文就详细的讲 ...
- 写出python字符串三种常用的函数或方法_python中几种常用字符串函数
1.lower()把所有字符换成小写 2.upper()把所有字符换成大写 3.swapcase()大小写互换 4.title()把每个单词首字母大写,他是以所有英文字母的字符来区别是否为一个单词的, ...
- java简述常见的布局极其特点_请简要说明 Android 中五种常见布局的特点。_学小易找答案...
[简答题]请简要说明有序广播和无序广播的区别 [简答题]请简要说明 Android 程序结构中 AndroidManifest.xml 的功能? [简答题]简述李村站人工办理进路的作业过程. [简答题 ...
最新文章
- Spring MVC 返回json数据 报406错误 问题解决方案
- 奔图打印机显示未连接_手机连接奔图打印机,无法打印的解决方法
- 在CDS(Core Data Services)中使用DCL(Data Control Language)
- 技术核心 | MySQL性能结构优化原理
- 【Android XMPP】 学习资料收集贴(持续更新)
- java ASM看到写的比较好的文章
- [转]JS弹出div和关闭
- mysql lower case_mysql lower-case-table-names参数
- AWVS14.7破解版免费获取
- FPGA基础知识(四)UG902 RTL仿真与输出
- linux python2.7安装pip_linux安装pip2.7
- 浪曦 ASP.net AJAX系列 视频下载
- 网络基础-应用层:E-mail应用:SMTP协议,POP协议,IMAP协议
- 将无线网卡变身为 wifi 热点的 完整批处理文件 或者 让i电脑变成wifi热点
- 计算机、通信方向学习考证经验分享
- 时间与日期——瞬时(Instant)
- 利用最小二乘法进行线性拟合
- 用频谱仪测量晶体频率的方法
- TP- LINK企业级vp-n路由器ipsec场景与实施(野蛮模式)
- ciscn_2019_qual_virtual
热门文章
- Android log打印不出来
- 从前到后的CAN总线(一)
- 什么是API,SDK?它们之间有什么关系?
- 撸个注解有什么难的 请看这里
- 行业 平均年龄_2019中国“新生力”白皮书:平均年龄35岁,千万资产家庭达198万户!...
- java websocket_理清 WebSocket 和 HTTP 的关系
- 本地导入Android-PullToRefresh库问题解决
- MySQL行(记录)的详细操作
- 译: 5. RabbitMQ Spring AMQP 之 Topic 主题
- python 自带的range是不能实现对小数的操作的,如果要对小数操作可以使用numpy...