gpt4 book ai didi

Android,线程 - 处理程序/异步任务

转载 作者:搜寻专家 更新时间:2023-11-01 08:13:54 24 4
gpt4 key购买 nike

我是通过书籍学习 Android 的新手,对于线程我看到书中解释了 3 种主要方法:

  • 通过消息传递处理程序
  • 通过邮寄处理
  • 异步任务

这三个看起来都不错,我的问题是:
您使用上述其中一项时是否有特定时间?还是个人喜好?

编辑:
如果不是个人喜好,请给我一个例子,说明何时使用一个而不是另一个(即使是链接也将不胜感激)

因为我计划运行多个线程(例如,一个用于应用程序总运行时间,一个用于在应用程序中选择答案之前的时间等,一个用于移动背景图像等)并且想知道选择哪个。我可以使用这 3 种方法中的任何一种来完成我想要的功能,所以很困惑为什么有 3 种方法可以使用任何一种方法完成。

谢谢!

最佳答案

Handler 是一种非常基本的方法,它允许您在不同的线程(通常是 UI 线程)上执行一些代码。它不会告诉您如何运行您的线程,您可以在这方面自由地做任何您想做的事。如果您有明确的消息传递,我会选择 handleMessage 方法。那就是您需要发送和接收一些数据。如果你只是需要做一些事情,你可以使用Runnable。然而,这两种方法都可用,并且选择通常是偏好的结果。

AsyncTask 是更高级别的概念,它在底层使用处理程序。如果你使用它,你将不必自己处理线程。您的异步代码将通过线程池执行并由框架控制。您将有两个方法允许您在 UI 线程上执行代码(onPostExecuteonProgressUpdate)。

简而言之,选择 AsyncTask 用于您使用多线程执行的大多数操作,它将免除您自己处理线程管理的需要。如果您必须只拥有自己的线程,则使用处理程序。但是请注意,在其他情况下您必须使用处理程序。例如,使用 Messenger。我也遇到过使用 onProgressUpdate 不够用的情况。在这种情况下,我也会使用 doInBackground 中的处理程序。

关于Android,线程 - 处理程序/异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6808200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com