国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 三種實現定時器詳解及實現方法

2019-12-12 05:22:56
字體:
來源:轉載
供稿:網友

方法一:Handler+Thread

package com.xunfang.handerDemo;  import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.TextView;  /**  * handler定時器  *  * @author Smalt  *  */ 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() {    // TODO Auto-generated method stub    while (true) {     try {      Thread.sleep(1000);      Message msg = new Message();      msg.what = 1;      handler.sendMessage(msg);      System.out.println("send...");     } catch (Exception e) {      // TODO Auto-generated catch block      e.printStackTrace();      System.out.println("thread error...");     }    }   }  } } 

方法二:Handler類自帶的postDelyed

package com.xunfang.handerDemo;  import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.widget.TextView;  /**  * handler定時器使用postDelyed實現  *  * @author Smalt  *  */ 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...");    }   }  };  } 

方法三:Handler+Timer+TimerTask

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;  /**  * 定時器實現:Handler+Timer+TimerTask  *  * @author Smalt  *  */ 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);   }  }; } 

以上就是對Android 定時器的資料整理后續繼續補充相關知識,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁乡县| 通州市| 桃园市| 清徐县| 丘北县| 丰顺县| 青铜峡市| 常熟市| 永新县| 平顶山市| 苍梧县| 韶关市| 宜昌市| 贺州市| 岢岚县| 沙坪坝区| 横山县| 井研县| 临桂县| 宝坻区| 修水县| 赫章县| 江口县| 敦煌市| 体育| 灵璧县| 贵定县| 云浮市| 桐城市| 苍南县| 金湖县| 墨脱县| 嵩明县| 鄢陵县| 樟树市| 汝南县| 涟源市| 临安市| 双辽市| 利辛县| 澳门|