2011-09-25 49 views
1

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

这让我重写了AsyncTask,无论在有网络呼叫的活动中。

+0

您希望单个异步下载的文件多于一个,或者多于一个活动中使用一个异步下载? –

+0

是我希望在所有网络调用中重用的单个ashyncTask。 并且这个类需要为所有即将到来的网络调用处理ProgressDialog。 感谢您的快速回复 – jibysthomas

回答

0

不知道你的代码的全部细节,它听起来像我似乎你可能会以一种从未打算的方式使用AsyncTask。

docs:

该类允许执行的后台操作和发布在UI线程上的结果,而不必操纵线程和/或处理程序。

在我心中的AsyncTask适用于相对简单的异步等任务文件下载/流等,一旦有需要,那么也许使用线程的全部功能,更复杂的异步任务被称为对于。这一切都归结于设计和正确选择可用工具的任务...

+0

我想在所有的网络通话中重复使用一个ashyncTask。从我的应用程序中的不同活动中,我想调用此asyncTask并获取数据。它将获取URL作为参数并执行HTTP GET并将结果返回。 这个类需要处理所有即将到来的网络调用的ProgressDialog,直到url的响应得到。 感谢您的快速回复 – jibysthomas

0

这一切都取决于您的网络电话的参与程度。如果它们很快并且你没有提取大量数据,那么AsyncTask将会很好。

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

为了不重写每个活动的AsyncTask,创建一个“父”活动类,在其中定义您是AsyncTask(以及任何其他重复的逻辑)。然后让需要运行你的AsyncTask的活动扩展这个活动。

但是,如果您的网络电话有些牵扯,您可能要考虑另一种方式。您可能需要定义服务并将所有活动绑定到该服务。

+0

我想你可以帮助我编码你的逻辑我的意思是超类活动你定义以上 – jibysthomas

+0

嘿PLZ想一个活动如何扩展第二个父类,所以这种方式永远不会帮助 – jibysthomas