使用AsyncTask更新ProgressDialog

时间:2011-09-25 13:18:20

标签: android android-asynctask

我需要一个AsyncTask来运行我的ProgressDialog,同时我从网络中获取数据。 我理解AsyncTask。但我在十几个地方有网络电话。如何对所有这些调用重用单个AsynchTask类,因为我对网络的调用来自不同的Activity?

这让我在活动中的任何地方都重写了AsyncTask网络电话。

2 个答案:

答案 0 :(得分:0)

在不知道代码的完整细节的情况下,它对我来说听起来好像你可能以一种从未想过的方式使用AsyncTask。

来自docs:

  

此类允许在UI线程上执行后台操作和发布结果,而无需操作线程和/或处理程序。

在我看来,AsyncTask适用于相对简单异步任务,例如单个文件下载/流等。一旦需要更复杂的异步任务,那么也许可以利用调用Threads的全部功能。这一切都归结为设计和正确选择可用的工具......

答案 1 :(得分:0)

这完全取决于您的网络电话的参与程度。如果它们很快并且您没有提取大量数据,那么AsyncTask就可以了。

最终,您需要做的是清理代码并确保不重复任何逻辑。确保将所有重复的逻辑放在一个方法中。

因此,您不会为每个Activity重写AsyncTask,而是创建一个“父”Activity类,您可以在其中定义AsyncTask(以及任何其他重复逻辑)。然后让运行AsyncTask的活动扩展此活动。

但是,如果你的网络电话有点涉及,你可能会想要研究另一种方式。您可能希望定义服务并将所有活动绑定到该服务。