【问题标题】:android: asynctask [closed]安卓:异步任务[关闭]
【发布时间】:2012-12-28 15:29:00
【问题描述】:

我有一个关于 AsyncTasks 的问题:

在我的项目中,我有多个 AsyncTask 类,例如 CustomTask1 和 CustomTask2 等,其中我正在做一些 HTTPPOSTS 和解析内容。 作为 AsyncTasks 的参数,我得到了一些最终的静态字符串,例如 (http://IP/"some special commands for a Webinterface")。

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

整个事情会更整洁一些

谢谢

【问题讨论】:

  • 以及我们应该如何在没有任何代码 sn-p 的情况下为您提供帮助?
  • 我不是想得到你的一些代码,而是想了解如何“清理”我的项目
  • 你应该添加你的代码,以帮助你用最好的方法来清理你的代码

标签: android class static android-asynctask


【解决方案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....
} 

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

【讨论】:

  • 是的,我知道你的意思。非常感谢!这些类确实共享相同的“算法片段”,所以我只是想知道在“源代码样式”方面减少代码是否会更好
【解决方案2】:

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

【讨论】:

  • 感谢编辑,移动网址粘贴不好玩:)
猜你喜欢
  • 2012-03-04
  • 1970-01-01
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多