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 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...
随机推荐
- 剑指Offer-37.二叉树的深度(C++/Java)
题目: 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 分析: 递归求解左右子树的最大值即可,每遍历到一个结点,深度加1,最后 ...
- js对文中某一处关键字自动检索和全文检索
部分检索: 代码: <%@ page language="java" contentType="text/html; charset=utf-8" pag ...
- Java题库——Chapter1 计算机、程序和Java概述
1)________ is the physical aspect of the computer that can be seen. A)Hardware B) Operating system C ...
- Ant Design Pro 改变默认启动端口号
找到package.json文件,找到图位置加--port即可.
- Git - Git版本库相关操作
创建Git版本库 如下命令实现在“E:\GitCode\01_TestGit”路径下,01_TestGit项目的Git版本库. $ cd E: #将当前目录转到E盘下 $ cd GitCode ...
- SpringCloud(八):springcloud-bus消息总线(刷新配置服务)
Bus消息总线: 好了现在我们接着上一篇的随笔,继续来讲.上一篇我们讲到,我们如果要去更新所有微服务的配置,在不重启的情况下去更新配置,只能依靠spring cloud config了,但是,是我们要 ...
- IT 常用的网址
IT 常用的网址 将图片转换成网络图片的网址:https://sm.ms/ 生成 ico 图标: http://www.bitbug.net/ 动画特效: https://daneden.github ...
- 在vue组件中设置定时器和清除定时器
由于项目中难免会碰到需要实时刷新,无论是获取短信码,还是在支付完成后轮询获取当前最新支付状态,这时就需要用到定时器.但是,定时器如果不及时合理地清除,会造成业务逻辑混乱甚至应用卡死的情况,这个时就需要 ...
- z390 m.2 接口插上sata 硬盘后,机械硬盘不识别;HDD 硬盘不识别;z390 m.2和 SATA 硬盘安装组合;
今天,在集成z390芯片组的主板上,安装了一块m.2支持 sata协议的ssd时,发现安装上ssd后,之前机械硬盘不识别了:还以为机械硬盘烧了: 在网上查找相关博客可以发现,是M.2 SATA 和 S ...
- Python 3 线程模型,进程模型记录
最近需要使用 python3 多线程处理大型数据,顺道探究了一下,python3 的线程模型的情况,下面进行简要记录: 多线程运行的优点: 使用线程可以把程序中占用时间较长的任务放到后台去处理: 用户 ...