如何在doInBackground AsyncTask中返回类列表?

时间:2018-01-02 07:08:57

标签: android

我尝试在异步任务的后台返回到用户列表,我的班级:

public class ReadingModel{
    @SerializedName("BillID")
    @Expose
    private String BillID;
    @SerializedName("Mablagh")
    @Expose
    private String Mablagh;
    @SerializedName("PayID")
    @Expose
    private String PayID;
    public String getBillID(){return BillID;}
    public void setBillID(String BillID){this.BillID=BillID;}
    public String getMablagh(){return Mablagh;}
    public void setMablagh(String Mablagh){this.Mablagh=Mablagh;}
    public String getPayID(){return PayID;}
    public void setPayID(String PayID){this.PayID=PayID;}
    public static class List extends ArrayList<MobilePostModel> {}
}


并用这种方式调用我的异步任务:

List<ReadingModel> List_result= new AsyncRead().execute(params).get();


这是我的异步任务代码:

private class AsyncRead extends AsyncTask<GetReadingTask,Void,String>{
        ReadingModel.List x;
        @Override
        protected List<ReadingModel> doInBackground(GetReadingTask... getReadingTasks) {
            ir.behineh.wepapiinterface.GETREADINGINTERFACE.GetReading taskService=ServiceGenerator.createService(ir.behineh.wepapiinterface.GETREADINGINTERFACE.GetReading.class);
            Call<ReadingModel.List> tasks=taskService.getReadings("application/x-www-form-urlencoded","application/json","bearer ");
            try {
                x=tasks.execute().body();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return x;
        }
    }


但在这一行:

 protected List<ReadingModel> doInBackground(GetReadingTask... getReadingTasks) {


得到这个错误:

  

尝试使用不兼容的返回类型   

如何解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:1)

最后一个泛型类型是返回类型。您有String,但返回List<ReadingModel>。您需要更改您的班级声明:

private class AsyncRead extends AsyncTask<GetReadingTask, Void, List<ReadingModel>> {
    //...
}