java的 Timer
16lz
2021-01-24
前言
学习android一段时间了,为了进一步了解android的应用是如何设计开发的,决定详细研究几个开源的android应用。从一些开源应用中吸收点东西,一边进行量的积累,一边探索android的学习研究方向。这里我首先选择了jwood的 Standup Timer项目。Timer
如果需要定期执行某些任务,可以使用Timer 类,它接受一个TimerTask用于指示需要执行的操作。Timer会在后台开一个线程来进行定期任务处理。在Standup Timer 中使用它来计时,其实在本系列文章中的上一篇: android的Handler就已经使用了Timer。下面我们来看看Standup Timer里相关的代码: Timer private void startTimer() {Logger.d( " Starting a new timer " );
timer = new Timer();
TimerTask updateTimerValuesTask = new TimerTask()
{
@Override
public void run() {
updateTimerValues();
}
};
timer.schedule(updateTimerValuesTask, 1000 , 1000 );
} updateTimerValues protected synchronized void updateTimerValues()
{
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
} // if
if (remainingMeetingSeconds > 0 )
remainingMeetingSeconds -- ;
// 使用Handler更新UI
updateDisplayHandler.sendEmptyMessage( 0 );
} 在startTimer方法里生成了一个新的Timer 并通过内部类的方式 生成一个 TimerTask ,通过schedule()方法 指定updateTimerValuesTask 每个一秒运行。 最后onResume中指定startTimer运行 @Override
protected void onResume()
{
super .onResume();
acquireWakeLock();
startTimer();
}
系列索引
Android 开源项目-StandupTimer学习笔记索引更多相关文章
- [转]Android(安卓)Music和第三方应用
- android用jdbc多线程操作sqlite小结
- [转]Android异步处理系列文章索引
- Android(安卓)Handler使用的安全问题
- Android(安卓)event日志打印原理
- Android如何播放GIF动画
- Android基础——通过activity和XML绑定实现按钮点击事件
- [置顶] Android(安卓)设置铃声分析
- android之helloworld详解