java timer别名_java timer 使用:

在看starup_timer 的开源代码 看到timer的使用的地方 想写一片日志 结果发现有人早写了关于这个地方 故引用:

前言

学习android一段时间了,为了进一步了解android的应用是如何设计开发的,决定详细研究几个开源的android应用。从一些开源应用中吸收点东西,一边进行量的积累,一边探索android的学习研究方向。这里我首先选择了jwood的Standup Timer项目。

Timer

如果需要定期执行某些任务,可以使用Timer 类,它接受一个TimerTask用于指示需要执行的操作。Timer会在后台开一个线程来进行定期任务处理。在Standup Timer 中使用它来计时,其实在本系列文章中的上一篇:android的Handler 就已经使用了Timer。下面我们来看看Standup Timer里相关的代码:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngTimer

privatevoidstartTimer() {

Logger.d("Starting a new timer");

timer=newTimer();

TimerTask updateTimerValuesTask=newTimerTask()

{

@Overridepublicvoidrun() {

updateTimerValues();

}

};

timer.schedule(updateTimerValuesTask,1000,1000);

}

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngupdateTimerValues

protectedsynchronizedvoidupdateTimerValues()

{

currentIndividualStatusSeconds++;if(remainingIndividualSeconds>0)

{

remainingIndividualSeconds--;if(remainingIndividualSeconds==warningTime)

{

Logger.d("Playing the bell sound");if(SettingActivity.playSounds(this)) {//如果等于设定的警告时间且设置允许警告则播放警告铃声playWarningSound();

}//if}else{if(remainingIndividualSeconds==0) {

Logger.d("Playing the airhorn sound");if(SettingActivity.playSounds(this)) {//如果时间等于零,切允许铃声提醒,则播放结束铃声playFinishedSound();

}//if}//if}//else}//ifif(remainingMeetingSeconds>0)

remainingMeetingSeconds--;//使用Handler更新UIupdateDisplayHandler.sendEmptyMessage(0);

}

在startTimer方法里生成了一个新的Timer 并通过内部类的方式 生成一个 TimerTask ,通过schedule()方法 指定updateTimerValuesTask 每个一秒运行。

最后onResume中指定startTimer运行

@OverrideprotectedvoidonResume()

{super.onResume();

acquireWakeLock();

startTimer();

}

timer extends thread  从而在timertask 的run中call method 要使用 线程安全的东西

自己在使用Timer的时候要这样进行定义

private void testTimer()

{

//

myTimer = new Timer();

myTimer.schedule(new mytask(), 1000, 2000);

}

class mytask extends TimerTask

{

@Override

public void run() {

// TODO Auto-generated method stub

System.out.println("this is timer test");

//if you implents method here must synchronized. make sure safe thread

}

//

}

如果想通过timer来改变android中UI的东西 因为在Android中并必须使用主线程进行UI的更新 从而需要给主线程的Handle.sendMessage 利用Message 来进行相应的信息的传递。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值