在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();取消计时器的执行

每个定时器只对应一个线程

定时器不能保证任务的准确执行线程安全的

定时器类在安卓系统中,超过

是定期执行任务的三种方式。你明白他们的意思吗?如果你仍然觉得这些知识对你来说不够,你可以来成都搜索引擎优化技术频道了解更多。