【移动应用开发技术】Android如何使用Handler实现定时器与倒计时器功能_第1页
【移动应用开发技术】Android如何使用Handler实现定时器与倒计时器功能_第2页
【移动应用开发技术】Android如何使用Handler实现定时器与倒计时器功能_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】Android如何使用Handler实现定时器与倒计时器功能

在下给大家分享一下Android如何使用Handler实现定时器与倒计时器功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是Handler

Handler是Android消息机制的上层接口,它为我们封装了许多底层的细节,让我们能够很方便的使用底层的消息机制。Handler的最常见应用场景之一便是通过Handler在子线程中间接更新UI。Handler的作用主要有两个:一是发送消息;二是处理消息,它的运作需要底层Looper和MessageQueue的支撑。MessageQueue即消息队列,它的底层用单链表实现;Looper则负责在一个循环中不断从MessageQueue中取消息,若取到了就交由Handler进行处理,否则便一直等待。关于Looper需要注意的一点是除了主线程之外的其他线程中默认是不存在Looper的。主线程中之所以存在,是因为在ActivityThread被创建时会完成初始化Looper的工作。特性支持操作:startpauseresumecancelstartpauseresumecancel使用allprojects

{

repositories

{

...

maven

{

url

'https://jitpack.io'

}

}

}

dependencies

{

...

compile

'com.github.xesam:AndroidTimer:v0.1'

}TODO

addtickersequence

addtickersequence使用CountTimer

new

CountTimer(100)

{

@Override

public

void

onTick(long

millisFly)

{

//

millisFly

is

the

Elapsed

time

at

*Running

State*

vCountSwitcher.setText((millisFly)

+

"");

Log.d("onTick",

millisFly

+

"");

}

};CountDownTimer

new

CountDownTimer(10_000,

100)

{

@Override

public

void

onTick(long

millisUntilFinished)

{

//

millisUntilFinished

is

the

left

time

at

*Running

State*

Log.d("onTick",

millisFly

+

"");

}

@Override

public

void

onCancel(long

millisUntilFinished)

{

}

@Override

public

void

onPause(long

millisUntilFinished)

{

}

@Override

public

void

onResume(long

millisUntilFinished)

{

}

@Override

public

void

onFinish()

{

}

};使用一个Handler同时管理多个定时任务创建多个任务:MultiCountTimer

multiCountTimer

=

new

MultiCountTimer(100);

multiCountTimer.add(new

CounterTimerTask(1)

{

@Override

public

void

onTick(long

millisFly)

{

vMulti1.setText("multi_1:"

+

millisFly);

}

}).registerTask(new

CounterTimerTask(2,

100)

{

@Override

public

void

onTick(long

millisFly)

{

vMulti2.setText("multi_2:"

+

millisFly);

}

}).registerTask(new

CounterTimerTask(3,

1000)

{

@Override

public

void

onTick(long

millisFly)

{

vMulti3.setText("multi_3:"

+

millisFly);

}

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论