用于重构常见调用的 CustomAsync 任务

CustomAsync task to refactor common calls

我有一个class文件

TMDB_Async.java

public class TMDB_Async {
  public class GetGenres extends CustomAsyncTask<Object, Void, String> {...}
  public class GetMovies extends CustomAsyncTask<Object, Void, String[][]> {...}
}

注:正在执行中:

CustomAsyncTask.java

public abstract class CustomAsyncTask<T,T,T> extends AsyncTask<T,T,T> {...}

然后我想使用它.. 类似:

SomeActivity.java

new TMDB_Async.GetGenres(textView).execute(id);

但是 红色波浪形突出显示 告诉我 TMDB_Async 不是封闭的 class。它邀请我进行静态导入,它会自动将其生成为 xyz....TMDB_Async.*,但这并不能解决问题。如果我指定 xyz...TMDB_Async.GetGenres 最后一位都是红色的。如果我删除 static 它也不能解决我的问题。所以我在这里做错了。

编辑:我想把它做成单例,添加代码:

private static TMDB_Async mInstance = null;

private TMDB_Async(){
    mInstance = new TMDB_Async();
}

public static TMDB_Async getInstance() {
    if (mInstance == null) {
        Class clazz = TMDB_Async.class;
        synchronized (clazz) {
            mInstance = new TMDB_Async();
        }
    }
    return mInstance;
}

但这其实也没有解决问题。

如何正确设置?

你内心的 类 GetGenresGetMovies 需要 static。 非static内部类只能从父对象实例化。