Welcome

首页 / 移动开发 / Android / 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; @Overridepublic 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 stubwhile (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 blocke.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; @Overridepublic 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; @Overridepublic 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 定时器的资料整理后续继续补充相关知识,谢谢大家对本站的支持!