![]() |
1
72
在imo中,asynctask的编写是为了提供一种方便、易用的方式来实现android应用程序的后台处理,而不必太担心底层细节(线程、消息循环等)。它提供了回调方法,帮助安排任务,并在需要时轻松更新ui。 但是,需要注意的是,当使用asynctask时,开发人员正在服从其限制,这是由于类的作者所做的设计决策造成的。例如,我最近发现,使用asynctasks可以调度的作业数量是有限制的。 handler在两者中更为透明,可能会给您更多的自由;因此,如果您想要对事物进行更多的控制,您可以选择handler,否则asyntask就可以正常工作。 |
![]() |
2
60
我的经验法则是:
|
![]() |
3
17
尽可能避免使用asynctask,主要原因如下:
总之,您不应该使用asynctask的uithread链接方法,这是它的主要优点!!!!此外,你应该只在后台做非关键性的工作。 有关此问题的详细信息,请阅读此线程: Is AsyncTask really conceptually flawed or am I just missing something? 最后,如果您担心上述任何问题,请尝试使用intentservices、handlerthread或threadpoolexecutor而不是asynctask。当然这需要更多的工作,但你的应用程序会更安全。 |
![]() |
4
15
如果你想每x秒做一次计算,你可能应该安排一个
|
![]() |
5
6
处理程序与应用程序主线程关联。它处理并调度从后台线程发送到应用程序主线程的消息和可运行文件。 asynctask提供了一个简单的方法来处理后台线程,以便在更新ui时不被耗时的操作阻塞。 答案是两者都可以用于从后台线程更新ui,区别在于执行场景。您可以考虑使用handler—如果您希望以特定顺序向消息队列发送延迟的消息或消息。 如果您想以一种简单方便的方式在应用主线程和后台线程之间交换参数(从而更新ui),可以考虑使用asynctask。 |
![]() |
6
0
他们是被问到的最好的面试问题。 异步任务 -它们用于卸载ui线程并在后台执行任务。 处理程序 -android dosent在ui和后台线程之间有直接的通信方式。处理程序必须用于通过消息队列发送消息或可运行。 因此,异步任务用于需要在后台执行任务的地方,处理程序用于ui和后台线程之间的通信。 |
![]() |
7
0
检查不同类型的
|
![]() |
8
0
干背地 -基本上是在另一个线程中工作。 后执行 -在ui线程上发布结果,并在内部向主线程的处理程序发送消息。主ui线程已经有一个与之关联的looper和handler。 所以,基本上,如果必须执行一些后台任务,请使用asynctask。但最终,如果需要在ui上更新某些内容,它将使用主线程的处理程序。 |
![]() |
9
0
异步任务=线程+处理程序 处理程序-这是一种允许处理消息队列的机制。它被限定在有活套的混凝土螺纹上。 请在这里读更多- https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a |
![]() |
Abhilash Das · 输入文本时,编辑文本与工具栏重叠 1 年前 |
![]() |
Community wiki · 局部变量可能尚未初始化 2 年前 |
![]() |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 2 年前 |