編輯:關於Android編程
本文實例講述了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程序設計有所幫助。
Handler的使用(一) Handler基本概念: Handler主要用於異步消息的處理:當發出一個消息之後,首先進入一個消息隊
本文實例講述了Android實現兩個ScrollView互相聯動的同步滾動效果代碼。分享給大家供大家參考,具體如下:最近在做一個項目,用到了兩個ScrollView互相聯
什麼叫創建圖片的副本? 因為我們直接從BitmapFactory取出來的圖片是可讀的,是不可以修改的。 假設用戶想修改這張圖片,一般是先根據原圖在內存中創建和原圖一模一樣
前一段時間為了學習android應用開發,嘗試寫了個簡單的拼圖應用,在此記錄下實現流程的核心部分,同時也希望給其他開發者入門參考帶來幫助。 1. 基本的界面設計