源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android三种实现定时器的方法

  • 时间:2020-11-02 03:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android三种实现定时器的方法
[b]方法一、使用Handler和Thread(线程)实现定时器[/b]
[u]复制代码[/u] 代码如下:
package com.xunfang.handerDemo; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.TextView; public class HanderDemoActivity extends Activity {     TextView tvShow;     private int i = 0;     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         tvShow = (TextView) findViewById(R.id.tv_show);         new Thread(new ThreadShow()).start();     }     // handler类接收数据     Handler handler = new Handler() {         public void handleMessage(Message msg) {             if (msg.what == 1) {                 tvShow.setText(Integer.toString(i++));                 System.out.println("receive....");             }         };     };     // 线程类     class ThreadShow implements Runnable {         @Override         public void run() {             while (true) {                 try {                     Thread.sleep(1000);                     Message msg = new Message();                     msg.what = 1;                     handler.sendMessage(msg);                     System.out.println("send...");                 } catch (Exception e) {                     e.printStackTrace();                     System.out.println("thread error...");                 }             }         }     } }
[b]方法二、使用Handler类自带的postDelyed实现定时器[/b]
[u]复制代码[/u] 代码如下:
package com.xunfang.handerDemo; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.widget.TextView; public class HanderDemoActivity extends Activity {     TextView tvShow;     private int i = 0;     private int TIME = 1000;     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         tvShow = (TextView) findViewById(R.id.tv_show);         handler.postDelayed(runnable, TIME); //每隔1s执行     }     Handler handler = new Handler();     Runnable runnable = new Runnable() {         @Override         public void run() {             // handler自带方法实现定时器             try {                 handler.postDelayed(this, TIME);                 tvShow.setText(Integer.toString(i++));                 System.out.println("do...");             } catch (Exception e) {                 // TODO Auto-generated catch block                 e.printStackTrace();                 System.out.println("exception...");             }         }     }; }
[b]方法三、使用Handler、Timer和TimerTask三个Android类实现定时器[/b]
[u]复制代码[/u] 代码如下:
package com.xunfang.handerDemo; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.TextView; public class HanderDemoActivity extends Activity {     TextView tvShow;     private int i = 0;     private int TIME = 1000;     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         tvShow = (TextView) findViewById(R.id.tv_show);         timer.schedule(task, 1000, 1000); // 1s后执行task,经过1s再次执行     }     Handler handler = new Handler() {         public void handleMessage(Message msg) {             if (msg.what == 1) {                 tvShow.setText(Integer.toString(i++));             }             super.handleMessage(msg);         };     };     Timer timer = new Timer();     TimerTask task = new TimerTask() {         @Override         public void run() {             // 发送消息             Message message = new Message();             message.what = 1;             handler.sendMessage(message);         }     }; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部