方法一: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定时器的方法,并提供相应的代码示例。 ### 方法一:Handler + Thread 这种方法利用了Android的消息机制。首先创建一个`Handler`对象,然后在一个后台线程(通常是一个`Thread`)中...
在android中,经常用到的定时器主要有以下几种实现: 一、采用Handler与线程的sleep(long )方法 二、采用Handler的postDelayed(Runnable, long) 方法 三、采用Handler与timer及TimerTask结合的方法。 三种方法都有...
android 中定时器的3个实现方法(均测试通过) 一、采用Handler与线程的sleep(long)方法 二、采用Handler的postDelayed(Runnable, long)方法 三、采用Handler与timer及TimerTask结合的方法
本文将详细介绍Android中如何实现定时器功能,包括两种主要的定时机制:`Handler`与`AlarmManager`。 一、基于Handler的定时器 `Handler`是Android消息处理机制的一部分,它可以配合`Looper`和`Message`实现延时或...
在Android开发中,定时器一般有以下3种实现方法: 1、采用Handler与线程的sleep(long)方法 2、采用Handler的postDelayed(Runnable, long)方法 3、采用Handler与timer及TimerTask结合的方法
以上介绍了三种不同的Android定时器实现方式,每种方法都有其适用的场景。开发者可以根据实际需求选择最合适的方式来实现定时任务。需要注意的是,在实际开发中,还需要考虑内存泄漏等问题,确保应用程序的稳定性和...
常见的实现方法有三种:基于Handler与线程的sleep(long)方法、Handler的postDelayed(Runnable, long)方法以及Handler与timer及TimerTask结合的方法。接下来,我们将详细探讨这三种方法。 **一、Handler与线程的...
本文将详细探讨在Android中实现定时器的几种常见方式:Timer、CountDownTimer、Handler配合postDelay以及Handler配合sendEmptyMessageDelayed。 1. **Timer与TimerTask** `Timer` 是Java中的一个类,它提供了调度...
在Android开发中,实现定时器功能对于创建动态和交互性的应用程序至关重要。常见的三种方法包括:Handler结合线程的`sleep(long)`方法、Handler的`postDelayed(Runnable, long)`方法以及Handler与`Timer`和`...
本示例“android 定时器demo”主要聚焦于Android的定时器使用,通过源码分享,帮助开发者深入理解并掌握如何在Android应用中实现定时任务。下面将详细解释相关知识点。 1. **AlarmManager**: `AlarmManager` 是...
Timer是Android直接启动定时器的类,TimerTask是一个子线程,方便处理一些比较复杂耗时的功能逻辑,经常与handler结合使用。 跟handler自身实现的定时器相比,Timer可以做一些复杂的处理,例如,需要对有大量对象的...
本文将深入探讨`Android Service`和定时器的基本概念、使用方法以及如何结合它们来实现每3秒打印一次日志的功能。 **Android Service** `Android Service`是一种在后台运行且不与用户界面直接交互的应用组件。它...
Android 实现定时器的几种方法 Android 开发中,实现定时器有多种方法,包括 Handler、Timer、Thread 和 AlarmManager。了解这些方法可以帮助开发者更好地实现定时器功能。 一、AlarmManager AlarmManager 是系统...
Android提供了两种主要的定时器实现:Java.util.Timer和AlarmService。这两种方法各有特点,适用于不同的场景。 首先,Java.util.Timer是Java标准库中的类,它允许开发者安排在特定时间运行的任务。在Android中,...
下面是如何在Android中使用这些组件实现定时器更新UI的步骤: 1. **初始化**: 在`MainActivity`的`onCreate(Bundle savedInstanceState)`方法中,初始化需要的组件,如`LinearLayout`和`ImageView`。 2. **创建...
本文将详细介绍在Android中实现定时器的三种方法。 1. **Thread.sleep()** 方法 这种方法是通过在线程中调用`Thread.sleep(millis)`来实现定时。它会使得当前线程暂停执行指定的毫秒数。以下是一个简单的示例: ``...
Android中的定时器并非直接内置在SDK中,而是通过Java的标准库`java.util.Timer`和`java.util.TimerTask`来实现。`Timer`类用于调度任务在未来某个时间点或定期执行,而`TimerTask`是执行的具体任务类。创建一个`...
Android中实现定时器的四种方式 第一种方式利用Timer和TimerTask 1、继承关系 java.util.Timer 基本方法 schedule 例如: timer.schedule(task, delay,period); //delay为long,period为long:从现在起过delay毫秒...