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

来源(博客园)

From: https://www.cnblogs.com/dame/p/8085983.html

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

通过实际项目的练习,掌握了几种android基本定时器和延时的用法,这里我想总结一下作为自己的收获,下面列出的是比较简洁的模式,方便简单地在程序中直接调用。

一、三种常用的定时器

1.Handler类的postDelayed方法:

Handler mHandler = new Handler();
Runnable r = new Runnable() {

	@Override
	public void run() {
		//do something
		//每隔1s循环执行run方法
		mHandler.postDelayed(this, 1000);
	}
};


主线程中调用: mHandler.postDelayed(r, 100);//延时100毫秒

2.用handler+timer+timeTask方法:

Handler handler = new Handler() {
	@Override
	public void handleMessage(Message msg) {
		if (msg.what == 1){
			//do something
		}
		super.handleMessage(msg);
	}
};

Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
	@Override
	public void run() {
		Message message = new Message();
		message.what = 1;
		handler.sendMessage(message);
	}
};


主线程中调用:timer.schedule(timerTask,1000,500);//延时1s,每隔500毫秒执行一次run方法

3.Thread+handler方法:

Handler handler = new Handler() {
	@Override
	public void handleMessage(Message msg) {
		if (msg.what == 1){
			//do something
		}
		super.handleMessage(msg);

	}
};

class MyThread extends Thread {//这里也可用Runnable接口实现
	@Override
	public void run() {
		while (true){
			try {
				Thread.sleep(1000);//每隔1s执行一次
				Message msg = new Message();
				msg.what = 1;
				handler.sendMessage(msg);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}

		}
	}
}


主线程中调用:new Thread(new MyThread()).start();

二、三种延时的快捷方法:

1.Handler的postDelayed方法:

new Handler().postDelayed(new Runnable() {

		@Override
		public void run() {
			//do something
		}
}, 1000);    //延时1s执行


2.timer + TimerTask方法:

timer = new Timer();
timer.schedule(new TimerTask() {
		@Override
		public void run() {
			//do something
		}
},1000);//延时1s执行


3.Thread方法:

new Thread(new MyThread()).start();
new Thread(new Runnable() {
		@Override
		public void run() {
			try {
				Thread.sleep(1000);//延时1s
				//do something
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
}).start();


转载地址:http://blog.csdn.net/u011710991/article/details/50133455

Link: http://www.asm32.net/article_details.aspx?id=7335


浏览次数 0 发布时间 2018-12-16 02:05:20 从属分类 Android 安卓 【评论】【 】【打印】【关闭
 
| www.asm32.net | 2006版 | 资料中心 | linux | asm/asm32 | C/C++ | VC++ | java | Python | 书签 | ASP.Net书签 | 京ICP备09029108号-1