我需要一个AsyncTask来运行我的ProgressDialog,同时我从网络中获取数据。 我理解AsyncTask。但我在十几个地方有网络电话。如何对所有这些调用重用单个AsynchTask类,因为我对网络的调用来自不同的Activity?
这让我在活动中的任何地方都重写了AsyncTask网络电话。
答案 0 :(得分:0)
在不知道代码的完整细节的情况下,它对我来说听起来好像你可能以一种从未想过的方式使用AsyncTask。
来自docs:
此类允许在UI线程上执行后台操作和发布结果,而无需操作线程和/或处理程序。
在我看来,AsyncTask适用于相对简单异步任务,例如单个文件下载/流等。一旦需要更复杂的异步任务,那么也许可以利用调用Threads的全部功能。这一切都归结为设计和正确选择可用的工具......
答案 1 :(得分:0)
这完全取决于您的网络电话的参与程度。如果它们很快并且您没有提取大量数据,那么AsyncTask就可以了。
最终,您需要做的是清理代码并确保不重复任何逻辑。确保将所有重复的逻辑放在一个方法中。
因此,您不会为每个Activity重写AsyncTask,而是创建一个“父”Activity类,您可以在其中定义AsyncTask(以及任何其他重复逻辑)。然后让运行AsyncTask的活动扩展此活动。
但是,如果你的网络电话有点涉及,你可能会想要研究另一种方式。您可能希望定义服务并将所有活动绑定到该服务。