当前位置: 首页 > 科技观察

三种Android定时器详解及实现方法

时间:2023-03-17 01:37:12 科技观察

本文主要介绍Android定时器的相关知识。下面介绍三种实现定时器的方法。需要的朋友可以参考一下。方法一:Handler+Threadpackagecom.xunfang.handerDemo;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.widget.TextView;/***handlertimer**@authorSmalt**/publicclassHanderDemoActivityextendsActivity{TextViewtvShow;privateinti=0;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);tvShow=(TextView)findViewById(R.id.tv_show)(newThreadShow().start();}//处理类接收数据Handlerhandler=newHandler(){publicvoidhandleMessage(Messagemsg){if(msg.what==1){tvShow.setText(Integer.toString(i++));System.out.println("receive....");}};};//线程类classThreadShowimplementsRunnable{@Overridepublicvoidrun(){//TODOAuto-generatedmethodstubwhile(true){try{Thread.sleep(1000);Messagemsg=newMessage();msg.what=1;handler.sendMessage(msg);System.out.println("send...");}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("threaderror...");}}}}}方法二:postDelyedpackagecom.xunfang.handerDemo;导入Handler类自带的android.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.widget.TextView;/***使用postDelyed实现的处理器定时器**@authorSmalt**/publicclassHanderDemoActivityextendsActivity{TextViewtvShow;privateinti=0;privateintTIME=1000;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);tvShow=(TextView)findViewById(R.id.tv_show);handler.postDelayed(runnable,TIME);//每执行一次1s}Handlerhandler=newHandler();Runnablerunnable=newRunnable(){@Overridepublicvoidrun(){//handler自带方法实现定时器try{handler.postDelayed(this,TIME);tvShow.setText(Integer.toString(i++));System.out.println("do...");}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("exception...");}}};}方法三:Handler+Timer+TimerTaskpackagecom.xunfang.handerDemo;importjava.util.Timer;importjava.util.TimerTask;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.widget.TextView;/***定时器实现:Handler+Timer+TimerTask**@authorSmalt**/publicclassHanderDemoActivityextendsActivity{TextViewtvShow;privateinti=0;privateintTIME=1000;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);tvShow=(TextView)findViewById(R.id.tv_show);timer.schedule(task,1000,1000);//1s后执行任务,1s后再次执行}Handlerhandler=newHandler(){publicvoidhandleMessage(Messagemsg){if(msg.what==1){tvShow.setText(Integer.toString(i++));}super.handleMessage(msg);};};Timertimer=newTimer();TimerTasktask=newTimerTask(){@Overridepublicvoidrun(){//需要做的事情:发送消息Messagemessage=newMessage();message.what=1;handler.sendMessage(message);}};}以上是组织n的Android定时器资料,继续补充相关知识,感谢支持!