• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

Android

Android中几种常用的按时器和延时方法

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/Android/2019/0809/593.html

通过现实名目的练习,控制了几种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方法:
 
复制手机App外包代码
 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
@Override14
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
@Override14
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 App开发培训主线程中用:new Thread(new MyThread()).start();
复制代码
二、三种延时的快速方法: 
1.Handler的postDelayed方法:
 
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
2.timer + TimerTask方法:
 
复制代码
1   timer = new Timer();2
timer.schedule(new TimerTask() {
 
3
   @Override4
   public void run() {5
 
//do something6
   }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();
 

上篇:上一篇:Java计较时差、日期差总结
下篇:下一篇:Android应用65K方法数Dex Error