您的位置:首页 > 移动开发 > Android开发

android定时

2016-06-08 21:44 405 查看
方法一:Handler+Thread

[java] view
plain copy

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

[java] view
plain copy

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

[java] view
plain copy

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);  

        }  

    };  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: