android定时器

原创 2016年05月31日 17:53:53
方法一: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);  
        }  
    };  
}  

Android定时器和线程实现

  • 2014年12月02日 19:46
  • 1.38MB
  • 下载

Android 闹铃定时器实现

  • 2016年12月19日 21:38
  • 607KB
  • 下载

在android中,经常用到的定时器

在android中,经常用到的定时器主要有以下几种实现:   一、采用Handler与线程的sleep(long )方法         二、采用Handler的postDelayed(Runnabl...

android多种定时器实现

  • 2017年10月10日 17:56
  • 132KB
  • 下载

使用AlarmManager启动广播、服务、页面(Android定时器)

AlarmManager是Android中的一种系统级别的提醒服务,它会为我们在特定的时刻广播一个指定的Intent。而使用Intent的时候,我们还需要它执行一个动作,如startActivity,...

在android中使用定时器的方法

  • 2015年01月19日 14:34
  • 15KB
  • 下载

android平台定时器介绍

  • 2013年09月02日 17:04
  • 20KB
  • 下载

android定时器的用法总结

在android中,經常用到的定時器主要有以下幾種實現: 一、採用Handler與線程的sleep(long )方法 二、採用Handler的postDelayed(Runnable, long)...

android定时器

  • 2015年09月24日 16:00
  • 1.28MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android定时器
举报原因:
原因补充:

(最多只允许输入30个字)