前言

  学习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学习笔记索引

更多相关文章

  1. [转]Android(安卓)Music和第三方应用
  2. android用jdbc多线程操作sqlite小结
  3. [转]Android异步处理系列文章索引
  4. Android(安卓)Handler使用的安全问题
  5. Android(安卓)event日志打印原理
  6. Android如何播放GIF动画
  7. Android基础——通过activity和XML绑定实现按钮点击事件
  8. [置顶] Android(安卓)设置铃声分析
  9. android之helloworld详解

随机推荐

  1. Glide框架V3版本和V4版本区别
  2. java泛型操作复习,以及讲解在android中使
  3. Android含文档server结束(client UI接口异
  4. Android(安卓)后台任务(四)Loader
  5. ArcGIS for Android(安卓)在Eclipse上的
  6. Android(安卓)Studio添加字体解决方案
  7. Android(安卓)1.5 在eclipse中出现:Intern
  8. Android(安卓)Studio 入门
  9. Android开发,用C#!
  10. Android定时广播和定时服务两种实现方式