我正在为一个网站设计 Android 客户端。所以我必须实现很多不同的网络操作。例如用户授权或在服务器上搜索。为此,我必须向 REST Web 服务器发送带有一些参数和 URL 的 JSON 请求。因此,我不仅必须传递 String 参数,还必须传递一些数据结构(例如 LinkedHashMap)。问题是我不知道最正确的方法。到目前为止我做了下一步:
-
protected Boolean doInBackground(Object... param)
。然后将param[0],param[1]转换为不同的类型。我认为这是一个不好的方法。 - 为此目的使用 javatuples 库:
protected Void doInBackground(Pair<String, LinkedHashMap<String, Object>>... params)
看起来代码太复杂和冗余。最重要的是我必须添加
@SuppressWarnings("unchecked")
或者我收到类型安全警告。
因此,也许一些专家可以帮助我解决这个问题,并提出最正确、最有效的方法建议。
最佳答案
您可以为 Asynctask 拥有自己的构造函数,并将它们存储为可以在 doinBackground 中使用的字段
private class Task extends AsyncTask<Void, Void, Void> {
Task(int a, long b){
//store a, b
}
@Override
protected Void doInBackground(Void... arg) {
}
}
然后
new Task(1,2).execute();
关于java - 将多个不同类型的参数传递给 doInBackground (Params...params) 方法的最正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13976765/