【发布时间】:2015-07-16 21:14:04
【问题描述】:
我不明白为什么会收到此编译错误;我这里涉及的所有类或方法都不是静态的。也许有人可以在这里有所启发。
在我的 MainActivity 类中,我声明了一个扩展 AsyncTask 的公共类:
public class AsyncStuff extends AsyncTask<String, Void, String> {
...
}
在我的非活动类中,我有一个应该触发异步任务的公共函数:
public class Util {
public void ExecuteAsyncMethod(){
MainActivity.AsyncStuff.execute(new String[]{"test" }); // error here
}
}
我也尝试过实例化 MainActivity.AsyncStuff 类的一个对象并执行它的 execute() 方法,但这也不起作用,因为它不在封闭类中。我无法将它移到其他地方,因为我需要更新 UI,所以它需要保留在 MainActivity 类中。
无论如何,我需要帮助来弄清楚为什么我的 ExecuteAsyncMethod() 方法无法编译。
谢谢!!
【问题讨论】:
-
我猜你需要外部类的实例(MainActivity实例,由
this实现)来创建内部类实例MainActivity.this.new AsyncStuff().execute(new String[]{"test" });