android 三种定时器的写法

一、 使用Timer 和 TimerTask
Timer timer = new Timer();
MyTimerTask timerTask = new MyTimerTask();
timer.schedule(timerTask, 3000, 1); // 延迟3秒钟,执行1次
//timer.cancel();// 取消

class MyTimerTask extends TimerTask {
    @Override
    public void run() {
                //这里不能处理UI操作
        // do something
    }
}

------------------------------------------------------------------------
二、采用Handler的sendMessageDelayed(Message, long)
public void startAutoFlowTimer() {
    handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            // do something

            Message message = handler.obtainMessage(0);
            sendMessageDelayed(message, 1000);
        }
    };

    Message message = handler.obtainMessage(0);
    handler.sendMessageDelayed(message, 1000);
}

handler.removeMessages(0) //结束调用

---------------------------------------------------------------------------
三、采用Handler的postDelayed(Runnable, long) 方法,这个实现比较简单一些:
1. Handler handler=new Handler();
Runnable runnable=new Runnable(){
    @Override
    public void run() {
        // do something
        handler.postDelayed(this, 2000); //在这里实现每两秒执行一次
    }
};

handler.postDelayed(runnable, 2000);//启动,两秒后执行runnable.

handler.removeCallbacks(runnable);  //停止

---------------------------------------------------------------------------

//延迟执行
// 设置异步线程,
Handler handler = new Handler() {
    public void handleMessage(Message msg) { // handle message
        switch (msg.what) {
        case 1:
            //ui 方法
        }
        super.handleMessage(msg);
    }
};

Message message = handler.obtainMessage(1);
handler.sendMessageDelayed(message, 3000); // 发送message,3秒后隐藏提示框

转载自:http://www.cnblogs.com/weidingqiang/p/5569012.html

时间: 2024-10-10 23:58:40

android 三种定时器的写法的相关文章

[Android]三种广播接收器1

/************ 动态注册 ************/ ActivityMain.java  package home.lee.broadcastreceiver; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.Inten

Android三种左右滑动效果 手势识别

Android三种左右滑动效果 手势识别(转) 手势识别 1.onCreate中添加GestureDetector mGestureDetector; //监听手势事件 mGestureDetector = new GestureDetector(this, onGestureListener); 2.//实现处理事件 OnGestureListener onGestureListener = new OnGestureListener() { //添加未实现的方法 }; 3.重写onTouch

cocos2dx三种定时器的使用

 cocos2dx三种定时器的使用以及停止schedule,scheduleUpdate,scheduleOnce 今天白白跟大家分享一下cocos2dx中定时器的使用方法. 首先,什么是定时器呢?或许你有时候会想让某个函数不断的去执行,或许只是执行一次,获取你想让他每隔几秒执行一次,ok,这些都可以统统交给定时器来解决. cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce.了解其功能便会发现定时器真是太方便了,废话不多说,我们逐一学习一

cocos2dx三种定时器使用

 cocos2dx三种定时器的使用以及停止schedule.scheduleUpdate.scheduleOnce 今天白白跟大家分享一下cocos2dx中定时器的用法. 首先,什么是定时器呢?也许你有时候会想让某个函数不断的去运行.也许仅仅是运行一次,获取你想让他每隔几秒运行一次.ok.这些都能够统统交给定时器来解决. cocos2dx中有三种定时器:schedule,scheduleUpdate.scheduleOnce.了解其功能便会发现定时器真是太方便了,废话不多说,我们逐一学习一下

android 三种弹出框之一poprpWindow

poprpWindow 在android的弹出框我目前了解到的是有三种:AlertDialog,poprpWindow,Activity伪弹框, AlertDialog太熟悉了,这里就不介绍了 就先看看poprpWindow API 给出的解释是: 意思就是一个展示view的弹出窗体,这个弹出窗体将会浮动在当前activity的最上层, 它和AlertDialog的区别是:在android中弹出框有两种方式:AlertDialog和PopupWindow,它们的不同点在于:      1.Ale

Objective-C三种定时器CADisplayLink / NSTimer / GCD的使用

OC中的三种定时器:CADisplayLink.NSTimer.GCD 我们先来看看CADiskplayLink, 点进头文件里面看看, 用注释来说明下 @interface CADisplayLink : NSObject { @private void *_impl; //指针 } + (CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel;//唯一一个初始化方法 - (void)addToRunLoop:(NS

Android三种基本的加载网络图片方式(转)

Android三种基本的加载网络图片方式,包括普通加载网络方式.用ImageLoader加载图片.用Volley加载图片. 1. [代码]普通加载网络方式 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

Android三种实现自定义ProgressBar的方式介绍

一.通过动画实现 定义res/anim/loading.xml如下: View Row Code<?xml version="1.0" encoding="UTF-8"?><animation-list android:oneshot="false"xmlns:android="http://schemas.android.com/apk/res/android"><item android:du

C#三种定时器的实现

·关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 3.定义在System.Timers.Timer类里 System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中 的Timer控件,内部使用API SetTimer实现的.它的主要缺点是计时不精确,而且必须有消息循环,Console Appli