1

我有一段代码 list = geocoder.getFromLocation( locationNetwork.getLatitude(), locationNetwork.getLongitude(), 3); ,我试图通过 getFromLocation(LocationManager) 检索最后一个位置。由于这可能需要时间,我想将它放在与 UI 不同的线程上。但我很困惑应该使用什么。是否应该为此目的使用处理程序或异步任务。我很困惑何时应该在 Android 中使用处理程序和异步任务。任何人都可以用一些例子来解释我,场景..谢谢.!

4

2 回答 2

3

我想你在这里搞混了。处理程序和异步任务是两个不同的东西。处理程序用于在线程之间进行通信,请参见此处,而 Async 任务基本上是 Android 中更易于使用的线程。如果你创建一个新线程并想与另一个线程通信,你必须使用 Handler。但是,Google 通过提供 Async 任务类使其更容易,该类允许在不使用处理程序的情况下与主 UI 线程进行通信,请参见此处。因此,简而言之,为您的目的使用异步任务。我提供的链接实际上提供了一个示例用法,并深入了解了 Asyncs。如果您需要澄清,请告诉我。

于 2013-07-03T19:39:01.283 回答
0

看到这个 SO answer 它谈到了AsyncTask,Handler和的区别Thread

大多数情况下,如果您正在谈论创建一个Thread. 如果您需要更新UI,尤其是在后台Thread运行时,那么我认为AsyncTask更容易。它们都允许您继续使用它们,UI同时它们在后台进行较重的提升。

您可以使用AsyncTask并完成工作,doInBackground()然后更新UI任何其他AsyncTask方法。如果您可能想Thread在多个地方使用它,则将其设为单独的文件,Activity Context如果需要,可以通过其构造函数传递给它。如果您只在一个中使用它,Activity那么您可以将其设置为您的内部类,Activity那么它将可以访问该类的所有成员变量Activity

于 2013-07-03T19:40:40.730 回答