/// <summary>
/// 倒计时
/// </summary>
public class MyCountDown: CountDownTimer
{
private Activity context = null;
public Action<long> OnTickAction;
public Action OnFinishAction;
public MyCountDown(Activity Activity, long millisInFuture, long countDownInterval) : base(millisInFuture, countDownInterval)
{
this.context = Activity;
}
public override void OnFinish()
{
OnFinishAction();
}
public override void OnTick(long millisUntilFinished)
{
OnTickAction(millisUntilFinished);
}
}
使用
#region 获取验证码相关
private void OnTickACT(long mill)
{
tv_getViCode.Text = (mill / 1000) + "s";
tv_getViCode.Clickable = false;
tv_getViCode.Click -= OnClickListener;
}
private void OnFinishACT()
{
tv_getViCode.Text = "获取验证码";
tv_getViCode.Clickable = true;
tv_getViCode.Click += OnClickListener;
}
#region 时间控制倒计时
private MyCountDown my;
/// <summary>
/// 开启验证码倒计时
/// </summary>
private void StartTImeCountDown()
{
my = new MyCountDown(this, 60000, 1000);
my.OnTickAction -= OnTickACT;
my.OnFinishAction -= OnFinishACT;
my.OnTickAction += OnTickACT;
my.OnFinishAction += OnFinishACT;
my.Start();
}
private void StopTimeCountDown()
{
if (my != null)
{
my.OnFinish();
my.Cancel();
my = null;
}
}
#endregion
#endregion