当前位置: 首页 > 编程笔记 >

Android三种实现定时器的方法

闽康安
2023-03-14
本文向大家介绍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;

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() {

            while (true) {

                try {

                    Thread.sleep(1000);

                    Message msg = new Message();

                    msg.what = 1;

                    handler.sendMessage(msg);

                    System.out.println("send...");

                } catch (Exception e) {

                    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;

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三个Android类实现定时器


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;

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 三种实现定时器详解及实现方法,包括了Android 三种实现定时器详解及实现方法的使用技巧和注意事项,需要的朋友参考一下 方法一:Handler+Thread 方法二:Handler类自带的postDelyed 方法三:Handler+Timer+TimerTask 以上就是对Android 定时器的资料整理后续继续补充相关知识,谢谢大家对本站的支持!

  • 本文向大家介绍Android实现定时器的3种方法,包括了Android实现定时器的3种方法的使用技巧和注意事项,需要的朋友参考一下 在Android开发中,定时器一般有以下3种实现方法: 一、采用Handler与线程的sleep(long)方法 二、采用Handler的postDelayed(Runnable, long)方法 三、采用Handler与timer及TimerTask结合的方法 下面

  • 本文向大家介绍Android中使用定时器的三种方法,包括了Android中使用定时器的三种方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android中使用定时器的三种方法,供大家参考,具体内容如下 图示: 因为都比较简单,所以就直接贴代码(虑去再次点击停止的操作),有个全局的Handler负责接收消息更新UI 第一种方法:Thread.sleep();方法 第二种方法:Han

  • 本文向大家介绍Android实现定时器的五种方法实例详解,包括了Android实现定时器的五种方法实例详解的使用技巧和注意事项,需要的朋友参考一下 一、Timer Timer是Android直接启动定时器的类,TimerTask是一个子线程,方便处理一些比较复杂耗时的功能逻辑,经常与handler结合使用。 跟handler自身实现的定时器相比,Timer可以做一些复杂的处理,例如,需要对有大量对

  • 本文向大家介绍Android  实现定时器的四种方式总结及实现实例,包括了Android  实现定时器的四种方式总结及实现实例的使用技巧和注意事项,需要的朋友参考一下 Android中实现定时器的四种方式 第一种方式利用Timer和TimerTask 1、继承关系 java.util.Timer 基本方法 schedule 例如: schedule方法有三个参数 第一个参数就是TimerTask类

  • 本文向大家介绍Android时分秒计时器的两种实现方法,包括了Android时分秒计时器的两种实现方法的使用技巧和注意事项,需要的朋友参考一下 可能我们在开发中会时常用到计时器这玩意儿,比如在录像的时候,我们可能需要在右上角显示一个计时器。这个东西其实实现起来非常简单。 只需要用一个控件Chronometer,是的,就这么简单,我都不好意思讲述一下了。 是的,就这么简单。java代码同样 超简单有