我什么时候应该使用装载机?当asynctask? (机器人)

时间:2014-05-17 10:06:07

标签: android sqlite android-asynctask loader

我仍然感到困惑。我已经在Android中阅读了几个加载器和asynctask的教程,但在某些情况下我无法理解一些差异。例如:

如果没有Asynctask或Loader提供的信息,您的应用无法继续

  • 如果您需要MySQL数据库中的信息,那会更好吗?
  • 并且......如果您需要来自SQLite数据库的信息怎么办?
  • 也许,您可能需要来自网址的数据。

您的应用可以在没有Asynctask或Loader提供的信息的情况下继续

  • 如果您需要MySQL数据库中的信息,那会更好吗?
  • 并且......如果您需要来自SQLite数据库的信息怎么办?
  • 也许,您可能需要来自网址的数据。

如果您认为我们必须提及更多差异或其他情况,您可以写下来。

2 个答案:

答案 0 :(得分:2)

好吧,它们都用于执行异步操作,如果你的应用程序可以或不能在没有信息的情况下继续运行并不重要。即使您的应用程序可以继续使用数据,您仍然需要异步处理它以避免ANR消息。

选择Loader或AsyncTask的一个原因是,如果您需要获取数据更新。 Loaders的优势在于,它们可以跟踪您正在访问的数据,并在数据发生变化时提供新的结果。

其他不同之处在于,对于Loaders,您不必担心配置更改(例如方向更改)。 LoaderManager会为您处理。使用AsyncTask,您需要自己处理。

甚至还有一个AsyncTaskLoader,它可以完成AsyncTask的功能,但具有Loaders的优点。

AsyncTask的优点是使用起来非常简单。如果您不需要加载或监控数据,只需在后台处理某些内容。 AsyncTask仍然是一个不错的选择。

答案 1 :(得分:0)

游标只是用于重新连接到最后一个光标,因为它被中断了。它们通常用于碎片或活动。

装载机的文档:

每个Activity和Fragment都可以使用它们。 它们提供异步数据加载。 他们监控数据来源,并在内容发生变化时提供新结果。 在配置更改后重新创建时,它们会自动重新连接到最后一个加载器的游标。因此,他们不需要重新查询他们的数据。

Asynctask更可能是一个包装器,它包含访问mainUI和后台线程的整个方法子集。