原创内容,转载请注明原文网址: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

