【发布时间】:2012-12-20 16:46:44
【问题描述】:
我正在为一个网站设计 Android 客户端。因此,我必须实施许多不同的网络操作。例如用户授权或在服务器上搜索。为此,我必须使用一些参数和 URL 向 REST Web 服务器发送 JSON 请求。所以我不仅必须传递字符串参数,还必须传递一些数据结构(例如 LinkedHashMap)。这个问题我不知道最正确的方法。到目前为止,我做了下一步:
-
protected Boolean doInBackground(Object... param)。然后将 param[0],param [1] 转换为不同的类型。我认为这是一种不好的方式。 - 为此目的使用 javatuples 库:
protected Void doInBackground(Pair<String, LinkedHashMap<String, Object>>... params)
这似乎太复杂和多余的代码。最重要的我必须添加
@SuppressWarnings("unchecked")
或者我收到了类型安全警告。
所以可能有一些专家可以帮助我并建议最正确和最有效的方法。
【问题讨论】:
-
为不同的类型创建不同的
AsyncTask实现,或者通过类层次结构来实现,您只需对所有类型都相同的通用基类/接口进行操作。警告见stackoverflow.com/questions/3096708/java-generics-and-varargs -
为什么不构建自己的类,比如 MyServerRequest,然后传递一个实例?
标签: java android android-asynctask