android - 我什么时候应该使用装载机?什么时候异步任务? (安卓)

标签 android sqlite android-asynctask loader

我还是一头雾水。我已经阅读了 Android 中加载程序和异步任务的几个教程,但在某些情况下我无法理解一些差异。例如:

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

  • 如果需要MySQL数据库的信息,用什么比较好?
  • 还有...如果您需要来自 SQLite 数据库的信息怎么办?
  • 也许,您可能需要来自 url 的数据。

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

  • 如果需要MySQL数据库的信息,用什么比较好?
  • 还有...如果您需要来自 SQLite 数据库的信息怎么办?
  • 也许,您可能需要来自 url 的数据。

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

最佳答案

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

选择 Loader 或 AsyncTask 的一个原因是您是否需要获取数据更新。加载程序的优势在于它们会跟踪您正在访问的数据并在数据发生变化时提供新结果。

另一个区别是使用 Loader,您不必担心配置更改(例如方向更改)。 LoaderManager 会为您处理这件事。使用 AsyncTask,您需要自己处理。

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

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

关于android - 我什么时候应该使用装载机?什么时候异步任务? (安卓),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23710015/

相关文章:

我键入时的android EditText格式

ios - sqlite 查询用于检索保存为字符串的两个日期之间的数据

python - 在 GUI 中呈现数据的最无缝方式

android - 如何将接收图像的线程与url同步

android - 异步任务需要很长时间才能完成工作

Android 应用程序卸载监听器

android - 分享对话框 - Facebook sdk 4.0 集成

java - findviewbyid 处的空指针异常

sqlite - 如何在 Lazarus 中对 TSQLite3DataSet 应用更新

java - 线程 asynctask 和 listview