我想要找出线程和处理程序之间的区别。创建一个新的处理程序是否会创建一个新的线程?当一个新的处理程序使用post()运行时,它是否创建了一个新的线程?请详细解释线程和处理程序有什么区别
18
A
回答
20
线程是通用的处理任务,可以处理大部分事情,但他们无法做的一件事是更新UI。
另一方面,处理程序绑定到允许您与UI线程通信的线程(更新UI)。
因此,举例来说,通过发布到处理程序的消息(Runnable)显示一个进程或更新进度条,但如果以线程的形式启动此可运行的程序,则无法进行此操作。
使用处理程序,您还可以拥有MessageQueuing,调度和重复等功能。
我还没有遇到一种情况,我需要在android中的线程。我主要使用AsyncTasks和Handlers的组合。
上述任务的处理程序。
AsyncTasks下载/数据的读取和查询等
你可以在这里阅读开发商的文章“Painless Threading”在Android的更多线程。
纠错: 每个Handler实例都与单个线程和该线程的消息队列相关联。他们不是代表他们自己的线程。如here所述。
2
线程定义进程正在运行。就像你在android中有一个主要的(UI线程)。并且所有其他线程都在后台运行(并行)。
处理程序是完全不同的,它就像启动一个处理程序中定义的任务..
要清除出你的困惑,并执行Android的线程,您必须阅读: http://android-developers.blogspot.com/2009/05/painless-threading.html
,我会建议AsyncTask,而不是在所有情况下都使用Thread。
0
我们为什么使用处理程序与线程:
当我们安装在Android的应用程序则创建该应用程序调用主UI线程,该线程中运行的所有活动,通过Android的单线程模式线程规则我们无法直接访问该活动内定义的另一个线程的UI元素(位图,文本视图等)。
因此,如果想要通过另一个线程访问主UI线程元素,那么我们将使用处理程序。
相关问题
- 1. 线程处理中的looper和while循环有什么区别?
- 2. click事件处理程序和ngClick指令有什么区别?
- 3. 发布工具和索引处理程序有什么区别?
- 4. 叉子和线程有什么区别?
- 5. 后(Runnable r)与主线程的处理程序和在主线程中运行有什么区别
- 6. CLR Worker线程和Worker线程有什么区别?
- 7. 使用线程池和普通线程有什么区别?
- 8. 时间多线程和超线程之间有什么区别?
- 9. 内核线程和用户线程有什么区别?
- 10. 工作线程和I/O线程有什么区别?
- 11. 网络服务和远程处理有什么区别?
- 12. 远程处理中CAO和SAO有什么区别?
- 13. 事件与委托处理程序和没有处理程序的区别是什么?
- 14. 静态事件处理程序和非静态事件处理程序之间有什么区别
- 15. 线程堆栈和进程堆栈有什么区别
- 16. 线程关联和进程关联有什么区别?
- 17. CPP/CLI程序集和CS/VB程序集有什么区别?
- 18. 程序和应用程序有什么区别?
- 19. 事件处理程序和事件侦听器之间有什么区别?
- 20. Android中的事件处理程序和事件监听器有什么区别?
- 21. 委托类型和事件处理程序类型有什么区别?
- 22. nativeElement.click()和事件处理程序的点击之间有什么区别?
- 23. 物理驱动程序和虚拟驱动程序有什么区别?
- 24. Windows程序调用有什么区别?
- 25. 两个程序有什么区别?
- 26. ISR和中断处理程序有区别吗?
- 27. 非主线程中的async io和do io有什么区别?
- 28. 多线程和任务之间有什么区别?
- 29. Quartz Scheduler和普通Java线程有什么区别
- 30. 线程和后台工作有什么区别?
处理程序不是线程 – Selvin 2012-02-24 19:07:27
正确,已更正 – MahdeTo 2012-02-24 19:16:11