Android定时器和Handler用法实例分析
Android定时器和Handler用法实例分析
发布时间:2016-12-28 来源:查字典编辑
摘要:本文实例讲述了Android定时器和Handler用法。分享给大家供大家参考。具体分析如下:一、环境:主机:WIN8开发环境: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程序设计有所帮助。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类