Android 定时器Timer例子

在Android应用开发中,会经常需要有定时器Timer的需求,一种方案是直接使用java.util.Timer来做定时器,但需要多线程来完成。如果您不想在应用中使用过多的多线程,那么使用下面这个简单的定时器是一个可选的方案。下面的例子是使用了android.os.Handler来完成的。

Java代码:
import android.os.Handler;



public class Timer {

private int _interval;

public int getInterval() { return _interval; }

public void setInterval(int delay) { _interval = delay; }

private Handler handler;

private Runnable _tickHandler;

private Runnable delegate;

private boolean ticking;

public boolean getIsTicking(){ return ticking; }



public Timer(int interval) {

_interval = interval;

handler = new Handler();

}



public Timer(int interval, Runnable onTickHandler) {

_interval = interval;

setOnTickHandler(onTickHandler);

handler = new Handler();

}



public void start(int interval, Runnable onTickHandler) {

if (ticking) return;

_interval = interval;

setOnTickHandler(onTickHandler);

handler.postDelayed(delegate, _interval);

ticking = true;

}



public void start() {

if (ticking) return;

handler.postDelayed(delegate, _interval);

ticking = true;

}



public void stop() {

handler.removeCallbacks(delegate);

ticking = false;

}



public void setOnTickHandler(Runnable onTickHandler) {

if (onTickHandler == null)

return;



_tickHandler = onTickHandler;



delegate = new Runnable() {





public void run() {

if (_tickHandler == null) return;

_tickHandler.run();

handler.postDelayed(delegate, _interval);

}

};

}

}
复制代码
下面是调用Timer的例子:

Java代码:
boolean blinkOn = false;

Timer tmrBlink = new Timer(500, new Runnable() {



public void run() {

if (blinkOn) {

((TextView) findViewById(R.id.widget46)).setVisibility(View.VISIBLE);

}

else

{

((TextView) findViewById(R.id.widget46)).setVisibility(View.INVISIBLE);

}

blinkOn = !blinkOn;

}

});

tmrBlink.start();
复制代码
虽然这个例子不是很难,但我希望大家看了这篇文章以后对大家有一点的帮助,这样就可以了,呵呵如果大家要是有什么别的思路也可以拿出来分享一下,这样的话我们这些人也会更快的成长呀。呵呵
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值