Android三種實(shí)現(xiàn)定時(shí)器詳解及實(shí)現(xiàn)方法
作者:yhm2046
本文主要介紹 Android 定時(shí)器的知識(shí)資料,這里整理了三種方法來(lái)實(shí)現(xiàn)定時(shí)器的方法,有需要的小伙伴可以參考下。
本文主要介紹 Android 定時(shí)器的知識(shí)資料,這里整理了三種方法來(lái)實(shí)現(xiàn)定時(shí)器的方法,有需要的小伙伴可以參考下。
方法一: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定時(shí)器
- *
- * @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類(lèi)接收數(shù)據(jù)
- Handler handler = new Handler() {
- public void handleMessage(Message msg) {
- if (msg.what == 1) {
- tvShow.setText(Integer.toString(i++));
- System.out.println("receive....");
- }
- };
- };
- // 線(xiàn)程類(lèi)
- 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類(lèi)自帶的postDelyed
- package com.xunfang.handerDemo;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.widget.TextView;
- /**
- * handler定時(shí)器使用postDelyed實(shí)現(xiàn)
- *
- * @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執(zhí)行
- }
- Handler handler = new Handler();
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- // handler自帶方法實(shí)現(xiàn)定時(shí)器
- 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;
- /**
- * 定時(shí)器實(shí)現(xiàn):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后執(zhí)行task,經(jīng)過(guò)1s再次執(zhí)行
- }
- 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() {
- // 需要做的事:發(fā)送消息
- Message message = new Message();
- message.what = 1;
- handler.sendMessage(message);
- }
- };
- }
以上就是對(duì)Android 定時(shí)器的資料整理后續(xù)繼續(xù)補(bǔ)充相關(guān)知識(shí),謝謝大家的支持!
責(zé)任編輯:趙寧寧
來(lái)源:
腳本之家