android原生定时任务_Android中定时执行任务的3种实现方法

本文介绍了在Android开发中实现定时任务的三种方法:Handler结合线程睡眠、Handler的postDelayed方法以及Handler与Timer的组合使用。详细解析了每种方法的实现步骤和优缺点,帮助开发者理解如何在Android应用中定期执行任务。
摘要由CSDN通过智能技术生成

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值