在android中,有主线程和子线程,子线程不能操作ui来改变。目前,我们不考虑用户界面问题和线程通信问题,我们将跟随成都seo技术频道的步伐来了解Android中定期执行任务的三种实现方法。
在安卓开发中,有三种方法来定期实现任务:
1,使用处理程序和线程睡眠(长)方法(不推荐,Java实现)
2,使用处理程序的后延迟(可运行,长)方法(最简单的安卓实现)
3,使用处理程序与定时器和定时器相结合的方法(推荐用于更多任务)
下面逐一介绍:
这只是最重要的方法。当然,在处理程序中还有其他实现方法。有兴趣的人可以查看一下API。然而,这里有许多解释。
1。定义一个处理程序类来处理接收到的消息handler = new handler(){ public void handler message(messagmsg){//what to do super . Handler message(msg);} };
2。创建一个新的线程类来实现可运行接口。以下内容:publicsclassmythreadimplementations runnable { @ override public void run(){//todo auto-generated methods tub while(true){ try { thread . sleep(10000);//线程以毫秒为单位暂停了10秒消息消息=新消息();message . what = 1;handler.sendMessage(消息);//发送消息} catch(中断的异常e) {//todoauto生成的catch块e . printstacktrace();}}}
3。在需要启动线程的地方添加以下语句:
newthread (newmythread())。start();
4。启动线程后,线程每10秒发送一条消息
2。使用处理程序的后置(可运行的长)方法
是一个更简单的实现
1。定义一个处理器类处理器处理器=新处理器();runnable runnable = new runnable(){ @ override public void run(){//to doauto-generated methodstub//to do handler . PostDeleted(this,2000);} };
2。启动计时器
handler . post delayed(runnable,2000);//可运行。
3。停止计时器
处理器。每两秒删除回调(Runnable);
3。采用处理器和定时器相结合的方法,定时器任务
1。定义计时器、计时器任务和处理程序句柄私有最终计时器=新计时器();私人时间任务;handler handler = new handler(){ @ override public void handler message(messagesmsg){//todo auto-generated methodstub//to do super . Handler message(msg);} };
2。initialize timer tasktask = new timer task(){ @ override public void run(){//todo auto生成的methodstumbmessage = new message();message . what = 1;handler.sendMessage(消息);} };启动定时器
定时器. schedule(任务,2000,2000);
4。停止计时器
Timer . cancel();
简要描述了上述三个步骤中提到的一些内容:
1。时间任务(TimerTask),顾名思义,是当计时器到达指定时间时要完成的工作。这里是希望处理程序发送一条消息,由处理程序类处理
2 . Java . util . timer . schedule(time rtask task,longdelay):此方法表示任务在dalay/1000秒后执行。它只执行一次。
爪哇。util。计时器。schedule (timertask任务,长延迟,长周期):此方法意味着任务在延迟/1000秒后执行,然后任务在周期/1000秒后再次执行。这用于循环任务并执行无数次。当然,您可以使用timer . cancel();取消计时器的执行
每个定时器只对应一个线程
定时器不能保证任务的准确执行线程安全的
定时器类在安卓系统中,超过
是定期执行任务的三种方式。你明白他们的意思吗?如果你仍然觉得这些知识对你来说不够,你可以来成都搜索引擎优化技术频道了解更多。