115、定时器(TimerTask+Timer+Handler)

public class TimerUtils {
    public static Activity act;
    public static List<MaiDianModels> listMaiAll = new ArrayList<MaiDianModels>();

    public TimerUtils(Activity act) {
        this.act = act;
    }

    public static Handler myHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            switch (msg.what) {
                case 3199:
                    if (listMaiAll.size() > 0) {
                        // Gson gson = new Gson();
                        String str = new Gson().toJson(listMaiAll);

                        //    String类型 进行Base64编码
                        String encoded = Base64.encode(str);
                        Log.i("maidian", "encoded[编码]......" + encoded);

                        //    String类型 进行Base64解码
                        String decoded = Base64.decode(encoded);
                        Log.i("maidian", "decoded[解码]......" + decoded);
                    }
                    break;
                default:
                    break;
            }
        }
    };

    public static Timer timer = null;
    public static MyTask myTask = null;

    static class MyTask extends TimerTask {   //
        @Override
        public void run() {
            //do something
            Message msg = Message.obtain();
            msg.what = 3199;
            myHandler.sendMessage(msg);
        }
    }
    ;
    public static void start() {
        stop();
        timer = new Timer();
        myTask = new MyTask();
        timer.schedule(myTask, 2000, 2000); // 2s后执行task,经过2s再次执行  20000
    }

    public static void stop() {
        if (myTask != null) {
            myTask.cancel();
        }
        if (timer != null) {
            timer.cancel();
            timer.purge();
            timer = null;  // (可选)
        }
    }
}
 new TimerUtils(TwoActivity.this).start();
时间: 2024-08-04 05:03:47

115、定时器(TimerTask+Timer+Handler)的相关文章

Service &amp; Timer &amp; Handler &amp; leaked ServiceConnection

定义一个Service,每隔一秒钟,变量count增加1: 在Activity里bindService,然后利用new Timer() 和 Handler,每隔一秒利用IBinder实例mBinder的getNumber()方法读取count的最新值,并显示在TextView. 首次运行,报错. Debug模式,发现MainActivity.class 79行的HandleMessage()方法在onServiceConnected()(MainActivity.class 第68行)之前就执行

WinForm LED循环显示信息,使用定时器Threading.Timer

原文:WinForm LED循环显示信息,使用定时器Threading.Timer 这里用一个示例来演示timer如何使用.示例:LED屏幕显示描述:这个示例其实很简单,LED屏幕上显示3个信息:        1:排队叫号         2:催缴费         3:等待列表.因为LED屏幕大小的关系,列表需要分页显示. 正常情况下,这3个信息都需要从服务器上去获得,这里的示例只做简单的模拟, 界面很简单,如图,这里我就不美化了. Timer构造函数参数说明: Callback:一个 Ti

SmartOS之(C++)------硬件定时器类Timer

SmartOS (C++)的硬件定时器驱动,兼容STM32F0/F1/F4/GD32F10x/GD32F1x0 头文件 1 #ifndef __Timer_H__ 2 #define __Timer_H__ 3 4 #include "Sys.h" 5 6 // 定时器 7 class Timer 8 { 9 private: 10 TIM_TypeDef* _port; 11 byte _index; // 第几个定时器,从0开始 12 volatile bool _started;

传统定时器技术 Timer

本文为张孝祥java并发课程的学习笔记. java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerTask一般是以匿名类的方式创建. 我们看看看Timer的api文档 它拥有以下的几个方法 cancel,取消任务 purge,移除已经取消的任务 schedule(TimerTask task, long delay) delay毫秒后执行task任务. 再

Java Timer, TimerTask, Timer.Schedule

schedule的意思(时间表.进度表) timer.schedule(new TimerTask(){ void run()},0, 60*60*1000);timer.schedule(new MyTask(event.getServletContext()), 0, 60*60*1000);第一个参数"new MyTask(event.getServletContext())":是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承

java之定时器任务Timer用法

在项目开发中,经常会遇到需要实现一些定时操作的任务,写过很多遍了,然而每次写的时候,总是会对一些细节有所遗忘,后来想想可能是没有总结的缘故,所以今天小编就打算总结一下可能会被遗忘的小点: 1. public void schedule(TimerTask task,Date time) 这个方法中如启动时,已经过了time的时间,则系统会在启动后直接执行一次, 话不多少直接上代码 package com.test.timer.task; import java.text.DateFormat;

自定义定时器(Timer)

最近做项目的时候,用到了java.util.Timer定时器类,也初步使用了,个人感觉不错.不过,在某些方面Timer类无法满足项目的需求,比如,在使用Timer时,调用schedule()方法之后(初始化),其循环周期无法改变,只有调用cancel()方法之后再重新启动才能将循环周期改变. 自己自定义了一个定时器线程,可开启.可关闭.可动态的改变循环周期,具体代码如下: /** * @ClassName: MyTimer * @Description: TODO 自定义定时器类 * @auth

Java定时器:Timer

项目中往往会遇到需要定时的任务,例如订单,当用户在某个规定时间内没有操作订单时,订单状态将会发生改变. 那么在这种情况下,我们会用到定时器. 举例: 1 import java.util.Timer; 2 3 4 /** 5 * java定时器 6 * @author Administrator 7 * 8 */ 9 public class TimeTaskTest { 10 public static void main(String[] args) { 11 Timer timer = n

自己定义定时器(Timer)

近期做项目的时候,用到了java.util.Timer定时器类.也初步使用了,个人感觉不错.只是,在某些方面Timer类无法满足项目的需求.比方,在使用Timer时,调用schedule()方法之后(初始化),其循环周期无法改变,仅仅有调用cancel()方法之后再又一次启动才干将循环周期改变. 自己自己定义了一个定时器线程,可开启.可关闭.可动态的改变循环周期.详细代码例如以下: /** * @ClassName: MyTimer * @Description: TODO 自己定义定时器类 *