Android定时器和Handler用法实例分析
程序员文章站
2022-06-23 10:31:50
本文实例讲述了android定时器和handler用法。分享给大家供大家参考。具体分析如下:
一、环境:
主机:win8
开发环境:android studio
二...
本文实例讲述了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程序设计有所帮助。
上一篇: 安卓APP测试之使用Burp Suite实现HTTPS抓包方法
下一篇: oracle redo