-2

我有一个关于 AsyncTasks 的问题:

在我的项目中,我有多个 AsyncTask 类,如 CustomTask1 和 CustomTask2 等,其中我正在做一些 HTTPPOSTS 和解析东西。作为 AsyncTasks 的参数,我得到了一些最终的静态字符串,例如(http://IP/“一些 Web 接口的特殊命令”)。

实际上,我不想要 4-5 个 AsyncTask 类,因为其中很多东西实际上是相同的,所以我多次编写了相同的代码。编写一个 AsyncTask 并在其中放置一些方法并定义静态值来决定使用哪种方法不是更好吗?那么问题是我还需要来自 AsyncTask 的不同返回值,有时是 String,有时是 ArrayList,该怎么做?

整个事情会更整洁一些

谢谢你

4

2 回答 2

1

你写:

我不想要 4-5 个 AsyncTask 类,因为里面的很多东西实际上是一样的,所以我多次编写了相同的代码......

这就是问题所在 - 不要多次编写相同的代码,但要拥有多个 AsyncTask。AsyncTasks 应该用作您的代码的外观,用于仅包含TASK-SPECIFIC 逻辑的每个特定任务类型。当然,如果这些任务共享相同的“算法片段”,那么将这些算法部分写在一个地方,然后通过类型化的任务以不同的方式公开它。我会做类似的事情:

class TaskLogicImpl //contains various task general static methods like parsing string etc...
{
   static void preParseServerResponse().......
} 

然后创建任务:

class Task1 : AsyncTask<URL, Integer, List>
{
  call your. TaskLogicImpl....
} 

因为每个任务都是类型化的,所以您将能够以类型安全的方式返回不同的值

于 2012-12-28T15:44:20.923 回答
0

如果您有一些在您的应用程序中重复的方法,请考虑编写一个扩展 Application 类的类。在此处阅读有关它的更多信息

于 2012-12-28T15:34:43.290 回答