`
chan.d
  • 浏览: 33011 次
  • 性别: 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定时器的方法,并提供相应的代码示例。 ### 方法一:Handler + Thread 这种方法利用了Android的消息机制。首先创建一个`Handler`对象,然后在一个后台线程(通常是一个`Thread`)中...

    android 定时器的三种方法

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

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

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

    Android定时器功能实现方法

    本文将详细介绍Android中如何实现定时器功能,包括两种主要的定时机制:`Handler`与`AlarmManager`。 一、基于Handler的定时器 `Handler`是Android消息处理机制的一部分,它可以配合`Looper`和`Message`实现延时或...

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

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

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

    以上介绍了三种不同的Android定时器实现方式,每种方法都有其适用的场景。开发者可以根据实际需求选择最合适的方式来实现定时任务。需要注意的是,在实际开发中,还需要考虑内存泄漏等问题,确保应用程序的稳定性和...

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

    常见的实现方法有三种:基于Handler与线程的sleep(long)方法、Handler的postDelayed(Runnable, long)方法以及Handler与timer及TimerTask结合的方法。接下来,我们将详细探讨这三种方法。 **一、Handler与线程的...

    android多种定时器实现

    本文将详细探讨在Android中实现定时器的几种常见方式:Timer、CountDownTimer、Handler配合postDelay以及Handler配合sendEmptyMessageDelayed。 1. **Timer与TimerTask** `Timer` 是Java中的一个类,它提供了调度...

    Android实现定时器的3种方法

    在Android开发中,实现定时器功能对于创建动态和交互性的应用程序至关重要。常见的三种方法包括:Handler结合线程的`sleep(long)`方法、Handler的`postDelayed(Runnable, long)`方法以及Handler与`Timer`和`...

    android 定时器demo

    本示例“android 定时器demo”主要聚焦于Android的定时器使用,通过源码分享,帮助开发者深入理解并掌握如何在Android应用中实现定时任务。下面将详细解释相关知识点。 1. **AlarmManager**: `AlarmManager` 是...

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

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

    Android Service 与 定时器

    本文将深入探讨`Android Service`和定时器的基本概念、使用方法以及如何结合它们来实现每3秒打印一次日志的功能。 **Android Service** `Android Service`是一种在后台运行且不与用户界面直接交互的应用组件。它...

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

    Android 实现定时器的几种方法 Android 开发中,实现定时器有多种方法,包括 Handler、Timer、Thread 和 AlarmManager。了解这些方法可以帮助开发者更好地实现定时器功能。 一、AlarmManager AlarmManager 是系统...

    android 定时器的实现

    Android提供了两种主要的定时器实现:Java.util.Timer和AlarmService。这两种方法各有特点,适用于不同的场景。 首先,Java.util.Timer是Java标准库中的类,它允许开发者安排在特定时间运行的任务。在Android中,...

    Android定时器

    下面是如何在Android中使用这些组件实现定时器更新UI的步骤: 1. **初始化**: 在`MainActivity`的`onCreate(Bundle savedInstanceState)`方法中,初始化需要的组件,如`LinearLayout`和`ImageView`。 2. **创建...

    Android中使用定时器的三种方法

    本文将详细介绍在Android中实现定时器的三种方法。 1. **Thread.sleep()** 方法 这种方法是通过在线程中调用`Thread.sleep(millis)`来实现定时。它会使得当前线程暂停执行指定的毫秒数。以下是一个简单的示例: ``...

    Android定时器和线程实现

    Android中的定时器并非直接内置在SDK中,而是通过Java的标准库`java.util.Timer`和`java.util.TimerTask`来实现。`Timer`类用于调度任务在未来某个时间点或定期执行,而`TimerTask`是执行的具体任务类。创建一个`...

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

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

Global site tag (gtag.js) - Google Analytics