扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、不要在TimerTask的run方法中做UI相关的操作,如:TextView.setText()等,这样可能会导致UI线程阻塞。如果需要可以使用handler向UI线程发消息,具体处理由UI线程自己完成。
创新互联建站是一家专注于做网站、网站设计与策划设计,宁德网站建设哪家好?创新互联建站做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:宁德等地区。宁德做网站价格咨询:028-86922220
2、在Android平台中需要反复按周期执行方法可以使用Java上自带的TimerTask类,TimerTask相对于Thread来说对于资源消耗的更低,除了使用Android自带的AlarmManager使用Timer定时器是一种更好的解决方法。
3、只需要在Handler的handleMessage中去减时间就行了。
4、在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmService了。实验1:使用Java.util.Timer。在onStart()创创建Timer,每5秒更新一次计数器,并启动。
AlarmManager是Android的全局定时器。就是在指定时间做一个事情(封装在PendingIntent)。通过PendingIntent的getActivity()、getService()或getBroadcast()来执行。
API里的Timer类,另一种是使用Android的Alarm机制。这两种方式在多数情况下都能实现类似的效果,但Timer有一个明显的短板,它并不太适用与那些需要长期在后台运行的定时任务。
只需要在Handler的handleMessage中去减时间就行了。
android 定时器是一个线程,线程canel 以后,只能重新new 并调用 start启动。
第三步,启动定时器 Timer.schedule(TimerTask, delay, period) ;这样创建并启动一个定时器的工作就完成,但是在实际使用的过程中,可能会需要一些其他方面的操作手段。
这个简单,直接用个service里启动一个定时器,5分钟执行一次,然后就是执行任务即可。service + 定时器的例子网上有一大堆。
在使用CountDownTimer时,最好不要直接在一个方法里面直接new出一个来,而应该在类开始就要定义和声明一个变量来,再在方法里start。
很显然你说按Home键时间没停止,就是因为这个方法里面的代码,实际上是因为按Home键触发这个方法以后,就不再回调你设置的监听器的回调方法。
核心:Activity开启服务,让服务每隔一分钟就发送一条广播通知调用某某方法。
TimerTask运行在一个单独的线程里,而不是UI线程。所以使用 Android timer时,注意android的单线程原则,确保线程安全。不要在TimerTask的run方法中做UI相关的操作,如:TextView.setText()等,这样可能会导致UI线程阻塞。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流