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

源码网商城

Android定时器和Handler用法实例分析

  • 时间:2021-04-03 06:34 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android定时器和Handler用法实例分析
本文实例讲述了Android定时器和Handler用法。分享给大家供大家参考。具体分析如下: [b]一、环境:[/b] 主机:WIN8 开发环境:Android Studio [b]二、定时器使用示例:[/b] 初始化:
//定时器 
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();
  } 
}
[b]三、定时器和Handler组合工作,更新UI示例(定时器线程不能直接更新UI):[/b] 定时器任务:
/** 
* 定时器线程定时工作 
*/ 
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); 
  } 
};
[b]四、Handler和Runnable组合产生线程示例:[/b] 延时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程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部