Android定時器和Handler用法執行個體分析_Android

來源:互聯網
上載者:User

本文執行個體講述了Android定時器和Handler用法。分享給大家供大家參考。具體分析如下:

一、環境:

主機:WIN8
開發環境:Android Studio

二、定時器使用樣本:

初始化:

//定時器 private Timer Timer_Work = new Timer();//工作間隔,單位:ms private final int INTERVAL_WORK = 5000;

建立定時器線程:

/** * 建構函式 */ public Config() {   //組建組態資訊   generate_config_info();   //建立定時線程   Timer_Work.schedule(new Task(), INTERVAL_WORK, INTERVAL_WORK);  // 定時任務 }

建立任務:

/** * 定時器線程定時工作 */ private class Task extends TimerTask {  @Override   public void run() {    generate_config_info();  } }

三、定時器和Handler組合工作,更新UI樣本(定時器線程不能直接更新UI):

定時器任務:

/** * 定時器線程定時工作 */ private class Task extends TimerTask {   @Override   public void run() {    if (get_state() == ENUM_State.FREE)    {     connect("10.58.1.59",8906);    }    if (get_state() == ENUM_State.CONNECT_SUCCESS)   {     login("TianTian","");    }    if (get_state() == ENUM_State.LOGIN_SUCCESS)    {     enter_room(1,"");    }    if (get_state() == ENUM_State.ENTER_ROOM_SUCCESS)   {     Message message = new Message();    message.what = 1;     handler.sendMessage(message);   }   } }

Handler處理資訊:

private Handler handler = new Handler() {   public void handleMessage(Message msg) {   switch (msg.what)    {     case 1:     {      System.out.println("sdk開啟視頻準備");     video(-224);      break;     }    }    super.handleMessage(msg);   } };

四、Handler和Runnable組合產生線程樣本:

延時200ms調用runnable

handler.postDelayed(runnable, 200);

產生線程:

Handler handler = new Handler();  Runnable runnable = new Runnable() {      @Override   public void run() {    try {     int videoBitrate = anychatSDK.QueryUserStateInt(userID, AnyChatDefine.BRAC_USERSTATE_VIDEOBITRATE);     if (videoBitrate > 0)     {      handler.removeCallbacks(runnable);      mOtherView.setBackgroundColor(Color.TRANSPARENT);     }          handler.postDelayed(runnable, 200);    } catch (Exception e) {     e.printStackTrace();    }   } };

希望本文所述對大家的Android程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.