`
chan.d
  • 浏览: 32068 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android三种实现定时器的方法

阅读更多

方法一:Handler+Thread

package com.xunfang.handerDemo;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;

/**
 * handler定时器
 * 
 * @author Smalt
 * 
 */
public class HanderDemoActivity extends Activity {
	TextView tvShow;
	private int i = 0;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tvShow = (TextView) findViewById(R.id.tv_show);
		new Thread(new ThreadShow()).start();
	}

	// handler类接收数据
	Handler handler = new Handler() {
		public void handleMessage(Message msg) {
			if (msg.what == 1) {
				tvShow.setText(Integer.toString(i++));
				System.out.println("receive....");
			}
		};
	};

	// 线程类
	class ThreadShow implements Runnable {

		@Override
		public void run() {
			// TODO Auto-generated method stub
			while (true) {
				try {
					Thread.sleep(1000);
					Message msg = new Message();
					msg.what = 1;
					handler.sendMessage(msg);
					System.out.println("send...");
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					System.out.println("thread error...");
				}
			}
		}
	}
}

 

方法二:Handler类自带的postDelyed

 

 

package com.xunfang.handerDemo;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;

/**
 * handler定时器使用postDelyed实现
 * 
 * @author Smalt
 * 
 */
public class HanderDemoActivity extends Activity {
	TextView tvShow;
	private int i = 0;
	private int TIME = 1000;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tvShow = (TextView) findViewById(R.id.tv_show);
		handler.postDelayed(runnable, TIME); //每隔1s执行
	}

	Handler handler = new Handler();
	Runnable runnable = new Runnable() {

		@Override
		public void run() {
			// handler自带方法实现定时器
			try {
				handler.postDelayed(this, TIME);
				tvShow.setText(Integer.toString(i++));
				System.out.println("do...");
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.out.println("exception...");
			}
		}
	};

}

 

方法三:

 

Handler+Timer+TimerTask

 

package com.xunfang.handerDemo;

 

import java.util.Timer;

import java.util.TimerTask;

 

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.widget.TextView;

 

/**

 * 定时器实现:Handler+Timer+TimerTask

 * 

 * @author Smalt

 * 

 */

public class HanderDemoActivity extends Activity {

TextView tvShow;

private int i = 0;

private int TIME = 1000;

 

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvShow = (TextView) findViewById(R.id.tv_show);

timer.schedule(task, 1000, 1000); // 1s后执行task,经过1s再次执行

}

 

Handler handler = new Handler() {

public void handleMessage(Message msg) {

if (msg.what == 1) {

tvShow.setText(Integer.toString(i++));

}

super.handleMessage(msg);

};

};

Timer timer = new Timer();

TimerTask task = new TimerTask() {

 

@Override

public void run() {

// 需要做的事:发送消息

Message message = new Message();

message.what = 1;

handler.sendMessage(message);

}

};

}

分享到:
评论

相关推荐

    Android 三种实现定时器详解及实现方法

    本文主要介绍 Android 定时器的知识资料,这里整理了三种方法来实现定时器的方法,有需要的小伙伴可以参考下

    android 定时器的三种方法

    在android中,经常用到的定时器主要有以下几种实现: 一、采用Handler与线程的sleep(long )方法 二、采用Handler的postDelayed(Runnable, long) 方法 三、采用Handler与timer及TimerTask结合的方法。 三种方法都有...

    Android定时器功能实现方法

    Android定时器功能实现方法

    android 中定时器的3个实现方法(均测试通过)

    android 中定时器的3个实现方法(均测试通过) 一、采用Handler与线程的sleep(long)方法 二、采用Handler的postDelayed(Runnable, long)方法 三、采用Handler与timer及TimerTask结合的方法

    [代码】android定时器的三种实现方式

    android定时器的三种实现方式 含代码

    Android三种不同实现方式的定时器

    在Android开发中,定时器一般有以下3种实现方法: 1、采用Handler与线程的sleep(long)方法 2、采用Handler的postDelayed(Runnable, long)方法 3、采用Handler与timer及TimerTask结合的方法

    Android中定时器的3种实现方法

    在Android开发中,定时器一般有以下3种实现方法:1.采用Handle与线程的sleep(long)方法; 2.采用Handler的postDelayed(Runnable, long)方法; 3.采用Handler与timer及TimerTask结合的方法.

    android多种定时器实现

    android实现定时器有很多种,例子中选了Timer、CountDownTimer、handler+postDelay、handler+handler等几种实现了一下,欢迎下载!

    Android实现定时器的3种方法

    在Android开发中,定时器一般有以下3种实现方法: 一、采用Handler与线程的sleep(long)方法 二、采用Handler的postDelayed(Runnable, long)方法 三、采用Handler与timer及TimerTask结合的方法 下面逐一介绍: 一、...

    Android实现定时器的五种方法实例详解

    Timer是Android直接启动定时器的类,TimerTask是一个子线程,方便处理一些比较复杂耗时的功能逻辑,经常与handler结合使用。 跟handler自身实现的定时器相比,Timer可以做一些复杂的处理,例如,需要对有大量对象的...

    android 定时器的实现

    android 定时器的实现 保证一看就会

    Android 实现定时器的四种方式总结及实现实例

    Android中实现定时器的四种方式 第一种方式利用Timer和TimerTask 1、继承关系 java.util.Timer 基本方法 schedule 例如: timer.schedule(task, delay,period); //delay为long,period为long:从现在起过delay毫秒...

    Android定时器

    android实现定时器 部分游戏源代码

    Android 闹铃定时器实现

    Android 闹铃定时器实现,注意:此demo在原生Android系统上没问题,但在国内大多数定制机上,如果关闭后台,闹铃一般不会触发 ╮(╯_╰)╭

    基于Android中实现定时器的3种解决方法

    在Android开发中,定时器一般有以下3种实现方法:一、采用Handler与线程的sleep(long)方法二、采用Handler的postDelayed(Runnable, long)方法三、采用Handler与timer及TimerTask结合的方法下面逐一介绍:一、采用...

    详解Android实现定时器的几种方法

    本篇文章主要介绍了详解Android实现定时器的几种方法,主要包括了Handler, Timer, Thread, AlarmManager,有兴趣的可以了解一下

    Android定时器和线程实现

    在Android开发中,经常会用到需要定时更新界面或者周期性地读取发送数据,本资源通过一个例子实现了定时器和线程,欢迎参考!

Global site tag (gtag.js) - Google Analytics