在不覆盖其参数的情况下扩展 AsyncTask

Extending AsyncTask without overriding its paramters

正如我在 AsyncTask class 中发现的 class 声明如下

public abstract class AsyncTask<Params, Progress, Result>

当我扩展 AsyncTask 时,我应该覆盖那些参数(即 AsyncTask),我不需要那个,我需要向 AsyncTask 添加一些功能,但在扩展我的 CustomAsyncTask 时仍然能够覆盖这些参数,这样我还需要像这样制作我的自定义 AsyncTask 声明

public abstract class CustomAsyncTask<Params, Progress, Result>

但是当我这样做时,"Params, Progress, Result" 不被识别为 AsyncTask class。

我发现我可以像这样声明我的自定义 class

public abstract class CustomAsyncTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result>

怎么样

public abstract class CustomAsyncTask<Params, Progress, Result>
      extends AsyncTask<Params, Progress, Result>

您可以扩展到 AsyncTask overriding onPreExecuteonPostExecute 但您必须 override doInBackground.

public class AsyncTaskParseJSONData extends AsyncTask {
   public AsyncTaskParseJSONData(JSONObject response) {
        this.responseObject = response;
    }

    @Override
    protected Object doInBackground(Object[] params) {
    }
}

看看这是否对你有帮助。