首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android简略的Timer小例子

2012-08-25 
Android简单的Timer小例子写惯java的人可能会认为Timer的使用应该如下:程序功能很简单:10秒后,SetTitle为“

Android简单的Timer小例子

写惯java的人可能会认为Timer的使用应该如下:

程序功能很简单:10秒后,SetTitle为“hear me?”,然后,实际上这样做是不行的,这跟Android的线程安全有关!

Java代码  Android简略的Timer小例子
  1. package com.ray.test;  
  2.   
  3. import java.util.Timer;  
  4. import java.util.TimerTask;  
  5.   
  6. import android.app.Activity;  
  7. import android.os.Bundle;  
  8.   
  9. public class JavaTimer extends Activity {  
  10.   
  11.     Timer timer = new Timer();  
  12.     TimerTask task = new TimerTask(){  
  13.   
  14.         public void run() {  
  15.             setTitle("hear me?");  
  16.         }  
  17.           
  18.     };  
  19.     public void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.main);  
  22.         timer.schedule(task, 10000);  
  23.     }  
  24. }  

 

但实际上的用法应该通过配合Handler来实现timer功能的!

Java代码  Android简略的Timer小例子
  • package com.ray.test;  
  •   
  • import java.util.Timer;  
  • import java.util.TimerTask;  
  •   
  • import android.app.Activity;  
  • import android.os.Bundle;  
  • import android.os.Handler;  
  • import android.os.Message;  
  •   
  • public class TestTimer extends Activity {  
  •   
  •     Timer timer = new Timer();  
  •     Handler handler = new Handler(){  
  •   
  •         public void handleMessage(Message msg) {  
  •             switch (msg.what) {      
  •             case 1:      
  •                 setTitle("hear me?");  
  •                 break;      
  •             }      
  •             super.handleMessage(msg);  
  •         }  
  •           
  •     };  
  •     TimerTask task = new TimerTask(){  
  •   
  •         public void run() {  
  •             Message message = new Message();      
  •             message.what = 1;      
  •             handler.sendMessage(message);    
  •         }  
  •           
  •     };  
  •   public void onCreate(Bundle savedInstanceState) {  
    1.         super.onCreate(savedInstanceState);  
    2.         setContentView(R.layout.main);  
    3.         timer.schedule(task, 10000);  
    4.     }  
    5. }  

     

     

    1楼ihrthk3天前 19:18
    干嘛还要用Timer啊,直接用Handler呗
    Re: chang_xing3天前 20:10
    回复ihrthknTimer和Timertask结合可以很好的控制消息的传递呀。n请问有什么想法可以分享吗?(代码)
    Re: ihrthk3天前 22:11
    回复chang_xingn看这个例子,Timer的作用就是异步+延时,Handler本身也是有的。
    Re: chang_xing3天前 08:25
    回复ihrthkn不用Timer要再写个线程吗?朋友可以分享个小例子吗?(例子链接也可以)
    Re: ihrthk3天前 08:43
    回复chang_xingnhandler.postAtTime(new Runnable(){nn @Overriden public void run() {n // TODO Auto-generated method stubn setTitle("hear me?"); n }n n }, 10000);
    Re: chang_xing3天前 10:39
    回复ihrthknhttp://blog.csdn.net/chang_xing/article/details/7829653
    Re: chang_xing3天前 10:44
    回复ihrthkn懂了,还是实现了Runnable()接口。下面是一个秒表的例子,没用Timer

  • 热点排行
    Bad Request.