android中的Timer与Handler的比较
来源:互联网 发布:淘宝售卖侵犯知识产权 编辑:程序博客网 时间:2024/05/22 05:22
Timer是一个定时器,需要结合TimerTask使用,是一个定时的机制,更倾向于定时的功能。handler是android中的消息机制,通过handler可以post执行任务,或send发送消息以及其他功能。
所以2者的相同点是:在什么时间去执行一个任务。不同点:出发点就不同吧,Timer就像是一个计时器,多久执行一个任务或间隔多久执行;handler更多的是一个通信的功能,大多数用于子线程发送消息更新UI。
下面就简单介绍:
分别用Timer和hadner执行一个延时任务,几乎没有差别
public class MainActivity extends AppCompatActivity { private Button btn; private Timer timer = new Timer(); private Task task = new Task(); private class Task extends TimerTask { @Override public void run() { request(); } } private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: request(); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (timer != null) { //timer执行任务 timer.schedule(task,5000); } //handler执行任务 handler.postDelayed(task,5000); } }); } public void request() { Log.e("zhang", "----------------------------"); } @Override protected void onDestroy() { super.onDestroy(); timer.cancel();//取消任务 handler.removeCallbacks(task);//取消任务 // handler.removeCallbacksAndMessages(null);//即取消任务,且清除消息 }}
然而,Timer可以间隔多久执行一次任务,并且一直不断的执行,如:
timer.schedule(task,5000,5000);
直到timer.cancel()方法执行,或对象被回收了。
当然,handler除了可以执行任务外,还可以发送消息。
handler.sendEmptyMessageDelayed(1,5000);
0 0
- android中的Timer与Handler的比较
- Android中的Timer和Handler的使用
- android timer与handler的用法体会
- Android Timer 定时器 与handler的配合
- Android Timer 定时器 与handler的配合
- android中的asynctask和handler的比较
- android 计划任务(Alarm,Timer,Thread,handler实现比较)
- android handler机制和Timer的使用
- android handler计时器 Timer+handler
- 关于Timer与handler
- android---Timer和Handler
- Android Handler 和 Timer
- Android使用Handler与timer及TimerTask结合的方法来实现后台运行定时任务
- Android Asynctask与Handler的比较,优缺点区别,Asynctask源码
- Android 线程Handler与异步加载AsyncTask的比较
- Android Asynctask与Handler的比较,优缺点区别,Asynctask源码
- asynctask与handler的比较
- Android之Handler总结与Timer和TimerTask详解
- Eclipse 反编译插件JadClipse安装
- 【IOS学习】关于EnumerateObjectsUsingBlock和for-in之间的较量
- 算法10 之带权图
- java-IO操作——使用FileWriter和FileReader来操作文件
- ORACLE日期时间函数大全
- android中的Timer与Handler的比较
- Linux - select()
- 移动端H5页面之iphone6的适配
- beanUtils操作javabean
- iOS应用程序间共享数据
- 【C++】:C++的境界1
- Python常见问题(3):设计与历史 Design and History FAQ
- iOS开发-VLC编译
- Flash游戏开发实例①打砖块-3-部署砖块(2)