【问题标题】:where to use asynk task and why even it exist if Handler is there?在哪里使用异步任务,如果 Handler 存在,为什么它甚至存在?
【发布时间】:2016-04-01 13:23:30
【问题描述】:

我是 android 新手,我以前主要使用异步任务,也有处理程序,当读取线程、异步任务和处理程序之间的差异时,我混淆了为什么不应该只使用处理程序,如果处理程序可以只为一个人做所有事情区别即异步任务在 UI 线程上初始化,而处理程序可以从任何初始化。 请给我一些情况,什么时候使用 Asynk 任务,什么时候不使用,为什么?和Handler一样吗?

【问题讨论】:

标签: android multithreading android-asynctask handlers


【解决方案1】:

您误认为处理程序。 Handlers 用于communicate between two threads。要实现使用 Asynctask 实现的功能,您必须使用handler and thread together,因为thread 将用于执行background processing,而handler 将用于update UI accordingly。虽然这两个任务都可以由 asynctask 本身执行。希望这能澄清一点。 您也可以参考此链接以进一步澄清Handlers and Thread

【讨论】:

    【解决方案2】:

    AsyncTask 用于在不中断 UI 线程(主线程)的情况下在后台运行,Handlers 在主线程上运行,并且是从另一个线程通信 UI 组件以实现 UI 更新操作等目的的不错选择,但如果你用它来做一个昂贵的进程,你的主线程将被阻塞,直到工作完成。 我个人使用Handlers 作为消息管理部分来保持我的UI 组件考虑应用程序事件,并使用AsyncTask 在后台沿着FragmentActivity lifecylce 运行进程。

    【讨论】:

      猜你喜欢
      • 2020-10-20
      • 2014-10-30
      • 2014-11-05
      • 2015-12-08
      • 2010-12-15
      • 1970-01-01
      • 2017-05-07
      • 2019-03-22
      • 1970-01-01
      相关资源
      最近更新 更多