Android定时器和Handler用法实例分析
本文实例讲述了Android定时器和Handler用法。分享给大家供大家参考。具体分析如下:
一、环境:
主机:WIN8
开发环境:AndroidStudio
二、定时器使用示例:
初始化:
//定时器 privateTimerTimer_Work=newTimer(); //工作间隔,单位:ms privatefinalintINTERVAL_WORK=5000;
创建定时器线程:
/** *构造函数 */ publicConfig(){ //生成配置信息 generate_config_info(); //创建定时线程 Timer_Work.schedule(newTask(),INTERVAL_WORK,INTERVAL_WORK); //定时任务 }
新建任务:
/** *定时器线程定时工作 */ privateclassTaskextendsTimerTask{ @Override publicvoidrun(){ generate_config_info(); } }
三、定时器和Handler组合工作,更新UI示例(定时器线程不能直接更新UI):
定时器任务:
/** *定时器线程定时工作 */ privateclassTaskextendsTimerTask{ @Override publicvoidrun(){ 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) { Messagemessage=newMessage(); message.what=1; handler.sendMessage(message); } } }
Handler处理信息:
privateHandlerhandler=newHandler(){ publicvoidhandleMessage(Messagemsg){ switch(msg.what) { case1: { System.out.println("sdk打开视频准备"); video(-224); break; } } super.handleMessage(msg); } };
四、Handler和Runnable组合产生线程示例:
延时200ms调用runnable
handler.postDelayed(runnable,200);
产生线程:
Handlerhandler=newHandler(); Runnablerunnable=newRunnable(){ @Override publicvoidrun(){ try{ intvideoBitrate=anychatSDK.QueryUserStateInt(userID,AnyChatDefine.BRAC_USERSTATE_VIDEOBITRATE); if(videoBitrate>0) { handler.removeCallbacks(runnable); mOtherView.setBackgroundColor(Color.TRANSPARENT); } handler.postDelayed(runnable,200); }catch(Exceptione){ e.printStackTrace(); } } };
希望本文所述对大家的Android程序设计有所帮助。