利用PostDelay实现的简单好用的timer类(android)

利用PostDelay实现的Timer类,代码如下:
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); 
      } 
    }; 
  } 
}
用法如下:
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、付费专栏及课程。

余额充值