Я видел этот ответ: Как получить результат OnPostExecute() для основной активности, потому что AsyncTask - это отдельный класс?
Но это не то, что я прошу, поскольку мой вызывающий класс имеет несколько вызовов для AsyncTask.
Я хочу создать общий AsyncTask класс, который будет принимать URL-адрес и загружать контент из заданного URL-адреса и возвращать загруженный контент.
Пример:
public class MyAsyncTask extends AsyncTask<String, Void, String>{
    ProgressDialog dialog;
    protected void onPreExecute() {
        super.onPreExecute();
        dialog = ProgressDialog.show(context, "Loading", "Please wait...", true);
    }
    protected String doInBackground(String... params) {
        // do download here
    }
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        dialog.dismiss();
    }
}
И у меня есть другой класс, который вызывает этот AsyncTask в разных сценариях
public class MyClass {
    public method1(String url) {
        String result = new MyAsyncTask().execute(url).get();
    }
    public method2(String url) {
        String result = new MyAsyncTask().execute(url).get();
    }
}
Я знаю, что использование метода get() сделает весь этот процесс задачей синхронизации. Но я хочу вернуть результат в вызывающий класс. И я также знаю, чтобы предотвратить это, я должен реализовать интерфейс. Но поскольку у меня есть несколько вызовов в одном классе, это невозможно. Так может ли кто-нибудь дать мне идею решить эту проблему?
