在哪里使用异步任务,如果有 Handler,为什么还要存在异步任务?
where to use asynk task and why even it exist if Handler is there?
我是 android 的新手,我过去主要使用异步任务,也有处理程序,当阅读线程、异步任务和处理程序之间的差异时,我感到困惑为什么不应该只使用处理程序,如果处理程序可以做每件事只是为了一个区别,即 Asynk 任务在 UI 线程上初始化,而 Handler 可以从任何线程初始化。
请告诉我什么时候使用 Asynk 任务,什么时候不使用,为什么?与处理程序相同?
AsyncTask
用于在后台运行不打断UI线程(主线程),Handlers
运行在主线程并且是出于 UI 更新操作之类的目的,从另一个线程传递 UI 组件的好选择,但是如果您使用它来执行昂贵的过程,您的主线程将被阻塞,直到工作完成。
我个人使用 Handlers
作为消息管理部分来保持我的 UI 考虑到应用程序事件的组件,并使用 AsyncTask
到 运行 后台进程沿 Fragment
或 Activity
生命周期。
你弄错了handler。 Handlers
习惯于communicate between two threads
。要实现 Asynctask 用于实现的功能,您必须使用 handler and thread together
,因为 thread
将用于执行 background processing
,而 handler
将用于 update UI accordingly
。虽然这两个任务都可以由 asynctask itself.Hope 执行,但这稍微清除了一点。
您也可以参考此 link 进一步说明 Handlers and Thread
我是 android 的新手,我过去主要使用异步任务,也有处理程序,当阅读线程、异步任务和处理程序之间的差异时,我感到困惑为什么不应该只使用处理程序,如果处理程序可以做每件事只是为了一个区别,即 Asynk 任务在 UI 线程上初始化,而 Handler 可以从任何线程初始化。 请告诉我什么时候使用 Asynk 任务,什么时候不使用,为什么?与处理程序相同?
AsyncTask
用于在后台运行不打断UI线程(主线程),Handlers
运行在主线程并且是出于 UI 更新操作之类的目的,从另一个线程传递 UI 组件的好选择,但是如果您使用它来执行昂贵的过程,您的主线程将被阻塞,直到工作完成。
我个人使用 Handlers
作为消息管理部分来保持我的 UI 考虑到应用程序事件的组件,并使用 AsyncTask
到 运行 后台进程沿 Fragment
或 Activity
生命周期。
你弄错了handler。 Handlers
习惯于communicate between two threads
。要实现 Asynctask 用于实现的功能,您必须使用 handler and thread together
,因为 thread
将用于执行 background processing
,而 handler
将用于 update UI accordingly
。虽然这两个任务都可以由 asynctask itself.Hope 执行,但这稍微清除了一点。
您也可以参考此 link 进一步说明 Handlers and Thread