android 使用timer

转载 2012年03月28日 21:55:37

转载自 http://www.cnblogs.com/xzf158/archive/2009/09/04/1560042.html

Android考虑到线程安全问题,不允许在线程中执行UI线程。

android.os.Handler,这个可以实现各处线程间的消息传递。

先看段代码,这个实例化了一个Handler,Handler可以通过Message在多个线程通讯,我这里做的是定时recLen加1,然后以一定的格式,显示到recTime上(UI线程上的操作)。


 1 final Handler handler = new Handler(){  
 2     public void handleMessage(Message msg) {  
 3         switch (msg.what) {      
 4             case 1:      
 5                 recLen++;
 6         recTime.setText(GetRecTime(recLen));
 7                 break;      
 8             }      
 9             super.handleMessage(msg);  
10         }    
11     };  
下面定实例化一个TimerTask,这个是为Timer提供一个定时执行的内容。我在这个方法中加的是给Handler一个发送消息功能,因这在Timer的线程中,无法直接操作UI线程。
1 TimerTask task = new TimerTask(){  
2       public void run() {  
3       Message message = new Message();      
4       message.what = 1;      
5       handler.sendMessage(message);    
6    }  
7 };  

剩下的工作就简单多,添加一个Timer,可以让程序运行起来了
1 timer = new Timer(true);
2 timer.schedule(task,10001000); //延时1000ms后执行,1000ms执行一次
3 //timer.cancel(); //退出计时器


后来经过实验,发现,每次在关闭timer时,要把timertask也给清空,然后下次用的时候再新建一个timertask出来,具体代码以后贴,好困啊,先贴个链接上来。

http://www.cnblogs.com/qq78292959/archive/2011/12/06/2277741.html

通过Handler与线程嵌套TimerTask实现循环交替任务

创建两个循环交替任务:10秒后,A任务执行。 A任务里面创建一个B任务200毫秒后执行,B任务里面又创建一个A任务10秒后执行,如此往复。 1,首先采用Handler与线程的sleep(long)方法...
  • u010963246
  • u010963246
  • 2015年07月24日 16:14
  • 927

Android实现定时器的几种方法

前言这几天正在看Android官方的开发文档,里面有很多很值得思考的开发建议,有时间的朋友可以去看一下(官方是英文文档,如果看不懂可以通过浏览器插件翻译对比着看,还是很方便的)。其中一篇课程提到了Al...
  • u011315960
  • u011315960
  • 2016年08月04日 18:23
  • 13016

Android Timer 用法以及更新UI时的技巧

Timers主要是用来在后台运行一些任务。可以把Timer设置为守护线程。当调用cancel时所有已经安排的任务都没会被取消。        Timer中的任务是依次执行的,如果一个任务花很长时...
  • dxpqxb
  • dxpqxb
  • 2013年03月11日 15:35
  • 2273

Android线程和Timer的销毁

Android线程和Timer的销毁 在Android开发中,经常会用到线程和Timer,如果您没有主动关闭它们,当程序结束时,线程并没有被销毁,而是一直在后台运行着,当我们重新启动应用时,又会重新...
  • idaretobe
  • idaretobe
  • 2015年03月28日 23:31
  • 1004

Android销毁线程的方式,Timer(定时器)的销毁

在Android开发中,经常会用到线程和Timer,如果没有主动关闭它们,当程序结束时,线程并没有被销毁,而是一直在后台运行着,当我们重新启动应用时,又会重新启动一个线程,周而复始,你启动应用次数越多...
  • lienyin
  • lienyin
  • 2015年12月03日 10:38
  • 5033

Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作实例

下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()...
  • dj0379
  • dj0379
  • 2016年03月13日 14:44
  • 21158

C#中Timer控件的使用用法

本来以为控件差不多学完了,结果今天偶尔发现只是学了Common Device Controls,在All Device Controls里还有一些其他的控件没看。不过大部分也不是太实用,我觉得Time...
  • u011786432
  • u011786432
  • 2013年08月23日 07:51
  • 3764

Android关于定时器Timer的定义及用法

今天主要说一下关于定时器Timer的用法及应用场景 还是接着昨天关于回调函数的例子,详细请看我的上一篇Android关于回调函数的定义及用法 在此基础上定义定时器,并不断请求数据,进行界面更新操作...
  • Maoxf_Boss
  • Maoxf_Boss
  • 2016年04月02日 12:40
  • 1734

android 特卖列表倒计时卡顿问题

在Android的开发中,我们经常遇见倒计时的操作,通常使用Timer和Handler共同操作来完成。当然也可以使用Android系统控件CountDownTimer,这里我们封装成一个控件,也方便大...
  • xiangzhihong8
  • xiangzhihong8
  • 2016年10月27日 20:36
  • 4125

MFC timer使用简介

我们知道手机里面的闹钟可以设个时间,然后选择重复,这样每天会按时响.在Oracle中设定一个job也可以让它在每天预定的时间执行. 那同样假如你想让一些代码每过多长时间自动执行一次咋整呢?在MFC中...
  • weiwenhp
  • weiwenhp
  • 2013年03月28日 19:46
  • 14706
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 使用timer
举报原因:
原因补充:

(最多只允许输入30个字)