Android三种实现定时器详解及实现方法

本文主要介绍 Android 定时器的知识资料,这里整理了三种方法来实现定时器的方法,有需要的小伙伴可以参考下。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名网站空间、营销软件、网站建设、无棣网站维护、网站推广。

方法一:Handler+Thread

 
 
 
  1. package com.xunfang.handerDemo; 
  2.   
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. import android.os.Handler; 
  6. import android.os.Message; 
  7. import android.widget.TextView; 
  8.   
  9. /** 
  10.  * handler定时器 
  11.  * 
  12.  * @author Smalt 
  13.  * 
  14.  */
  15. public class HanderDemoActivity extends Activity { 
  16.  TextView tvShow; 
  17.  private int i = 0; 
  18.   
  19.  @Override
  20.  public void onCreate(Bundle savedInstanceState) { 
  21.   super.onCreate(savedInstanceState); 
  22.   setContentView(R.layout.main); 
  23.   tvShow = (TextView) findViewById(R.id.tv_show); 
  24.   new Thread(new ThreadShow()).start(); 
  25.  } 
  26.   
  27.  // handler类接收数据 
  28.  Handler handler = new Handler() { 
  29.   public void handleMessage(Message msg) { 
  30.    if (msg.what == 1) { 
  31.     tvShow.setText(Integer.toString(i++)); 
  32.     System.out.println("receive...."); 
  33.    } 
  34.   }; 
  35.  }; 
  36.   
  37.  // 线程类 
  38.  class ThreadShow implements Runnable { 
  39.   
  40.   @Override
  41.   public void run() { 
  42.    // TODO Auto-generated method stub 
  43.    while (true) { 
  44.     try { 
  45.      Thread.sleep(1000); 
  46.      Message msg = new Message(); 
  47.      msg.what = 1; 
  48.      handler.sendMessage(msg); 
  49.      System.out.println("send..."); 
  50.     } catch (Exception e) { 
  51.      // TODO Auto-generated catch block 
  52.      e.printStackTrace(); 
  53.      System.out.println("thread error..."); 
  54.     } 
  55.    } 
  56.   } 
  57.  } 

方法二:Handler类自带的postDelyed

 
 
 
  1. package com.xunfang.handerDemo; 
  2.   
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. import android.os.Handler; 
  6. import android.widget.TextView; 
  7.   
  8. /** 
  9.  * handler定时器使用postDelyed实现 
  10.  * 
  11.  * @author Smalt 
  12.  * 
  13.  */
  14. public class HanderDemoActivity extends Activity { 
  15.  TextView tvShow; 
  16.  private int i = 0; 
  17.  private int TIME = 1000; 
  18.   
  19.  @Override
  20.  public void onCreate(Bundle savedInstanceState) { 
  21.   super.onCreate(savedInstanceState); 
  22.   setContentView(R.layout.main); 
  23.   tvShow = (TextView) findViewById(R.id.tv_show); 
  24.   handler.postDelayed(runnable, TIME); //每隔1s执行 
  25.  } 
  26.   
  27.  Handler handler = new Handler(); 
  28.  Runnable runnable = new Runnable() { 
  29.   
  30.   @Override
  31.   public void run() { 
  32.    // handler自带方法实现定时器 
  33.    try { 
  34.     handler.postDelayed(this, TIME); 
  35.     tvShow.setText(Integer.toString(i++)); 
  36.     System.out.println("do..."); 
  37.    } catch (Exception e) { 
  38.     // TODO Auto-generated catch block 
  39.     e.printStackTrace(); 
  40.     System.out.println("exception..."); 
  41.    } 
  42.   } 
  43.  }; 
  44.   

方法三:Handler+Timer+TimerTask

 
 
 
  1. package com.xunfang.handerDemo; 
  2.   
  3. import java.util.Timer; 
  4. import java.util.TimerTask; 
  5.   
  6. import android.app.Activity; 
  7. import android.os.Bundle; 
  8. import android.os.Handler; 
  9. import android.os.Message; 
  10. import android.widget.TextView; 
  11.   
  12. /** 
  13.  * 定时器实现:Handler+Timer+TimerTask 
  14.  * 
  15.  * @author Smalt 
  16.  * 
  17.  */
  18. public class HanderDemoActivity extends Activity { 
  19.  TextView tvShow; 
  20.  private int i = 0; 
  21.  private int TIME = 1000; 
  22.   
  23.  @Override
  24.  public void onCreate(Bundle savedInstanceState) { 
  25.   super.onCreate(savedInstanceState); 
  26.   setContentView(R.layout.main); 
  27.   tvShow = (TextView) findViewById(R.id.tv_show); 
  28.   timer.schedule(task, 1000, 1000); // 1s后执行task,经过1s再次执行 
  29.  } 
  30.   
  31.  Handler handler = new Handler() { 
  32.   public void handleMessage(Message msg) { 
  33.    if (msg.what == 1) { 
  34.     tvShow.setText(Integer.toString(i++)); 
  35.    } 
  36.    super.handleMessage(msg); 
  37.   }; 
  38.  }; 
  39.  Timer timer = new Timer(); 
  40.  TimerTask task = new TimerTask() { 
  41.   
  42.   @Override
  43.   public void run() { 
  44.    // 需要做的事:发送消息 
  45.    Message message = new Message(); 
  46.    message.what = 1; 
  47.    handler.sendMessage(message); 
  48.   } 
  49.  }; 

以上就是对Android 定时器的资料整理后续继续补充相关知识,谢谢大家的支持!

名称栏目:Android三种实现定时器详解及实现方法
文章URL:http://www.mswzjz.com/qtweb/news34/171884.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联