Android实现定时执行某个任务
来源:互联网 发布:网络犯罪特搜班土豆 编辑:程序博客网 时间:2024/05/18 23:53
在 Android中,有时候我们需要固定几秒后去执行一个动作,比如进入某个页面然后过几秒去刷新,下面看看怎么实现:
方式一(使用handler):
new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message message) { Toast.makeText(MainActivity.this,"定时时间到...",Toast.LENGTH_SHORT).show(); return false; } }).sendEmptyMessageDelayed(0,3000);
延迟3秒发送一个消息,然后在handleMessage方法里面执行动作。
方式二(使用定时任务):
new Timer().schedule(new TimerTask() { @Override public void run() { Looper.prepare(); Toast.makeText(MainActivity.this,"定时时间到...",Toast.LENGTH_SHORT); Looper.loop(); } },3000);
关于上面两个方法我想讲一下两个地方:
1.handleMessage的返回值代表什么意思?
callBack{}是一个接口的回调,当我们使用的时候调用里面的handleMessage(msg)时是一个带返回值的,我们可以通过对这个返回值值的控制来打断handle的消息传递机制,如果我们返回的是false的话那么就不会打断handle对消息的处理,如果返回值设置为true那么将不会执行handle的消息处理只会执行callback{}里面的handleMessage()方法。
2.Toast为什么要使用Looper?
因为TimerTask实现了Runnable接口,所以run方法是执行在子线程中的,当Toast对象在创建的过程中依赖一个handler,handler的使用是依赖looper的,而在子线程中并没有Looper对象,如果不使用Looper.prepare,会报出下面这个错:
所以,必须使用Looper.prepare为当前线程创建一个Looper对象,然后调用Looper.loop()方法使它工作起来。
0 0
- Android实现定时执行某个任务
- 定时执行某个任务
- android 定时执行任务
- Android任务定时执行
- Android定时执行任务
- android定时执行任务
- Android定时执行任务
- java的Timer,定时执行某个任务
- java的Timer,定时执行某个任务
- Android 延时执行某个任务
- 线程实现定时执行任务
- ThinkPHP实现定时执行任务
- ASP.NET MVC计划任务实现方法(定时执行某个功能)
- android定时循环执行任务
- android 定时执行一个任务
- Android后台执行定时任务
- android 计数器---定时执行任务
- android定时循环执行任务
- Eclipse 下用WiFi调试手机免root
- 一个普通网站发展成大型网站的架构演变历程
- 高性能计算知识汇总
- Android 开发规范总结
- 理解SVN中trunk,branches,tags
- Android实现定时执行某个任务
- hdu 2502 月之数
- IO多路复用之poll总结
- CodeForces 617A Elephant
- MaterialRefreshLayout实现下拉刷新上拉加载更多
- [Latex] natbib package to cite references
- AFNetworking判断网络状态
- How does a relational database work
- bat 自动执行 SVN 命令