我正在尝试编写通用的asyncTask以处理更多请求
public class AsyncTaskInner <T> extends AsyncTask<Void, Void, List<T>> {
Class<T> mClazz;
public void setDataListener(TimeDataListener dataListener) {
mDataListener = dataListener;
}
public void setClass(Class<T> clazz){
mClazz = clazz;
}
@Override
protected final List<T> doInBackground(Void... voids) {
String path = "";
final String requestItem = Config.getTime();
List<T> priceResponseList = null;
path = Config.getPath();
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
final int statusCode = connection.getResponseCode();
if (statusCode == 200) { // 200 -> STATUS_OK.
InputStream inputStream = new BufferedInputStream(connection.getInputStream());
String response = IOUtils.toString(inputStream, "UTF-8");
priceResponseList = getTimeResponse(response, mClazz);
}
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
return priceResponseList;
}
@Override
protected void onPostExecute(List<T> priceResponceList) {
super.onPostExecute(priceResponceList);
if (priceResponceList != null) {
mDataListener.onTimeDataReceived(priceResponceList);
}
}
}
在setClass()方法和.execute()上返回错误...
未选中的对setClass(Class)的调用,作为原始类型RequestFactory.AsyncTaskInner的成员
以行类型'android.os.AsyncTask'的成员对'execute(Params)'的未选中调用
最佳答案
谢谢。我应该写那个
RequestFactory.AsyncTaskInner timeRequest;
timeRequest = new RequestFactory().new AsyncTaskInner<>();
timeRequest.setClass(TimeResponce.class);
timeRequest.execute();