我不明白为什么我会收到这个编译错误;我这里涉及的类或方法都不是静态的。也许有人可以在这里阐明一些想法。
在我的 MainActivity 类中,我声明了一个扩展 AsyncTask 的公共(public)类:
public class AsyncStuff extends AsyncTask<String, Void, String> {
...
}
在我的非 Activity 类中,我有一个应该触发异步任务的公共(public)函数:
public class Util {
public void ExecuteAsyncMethod(){
MainActivity.AsyncStuff.execute(new String[]{"test" }); // error here
}
}
我还尝试实例化 MainActivity.AsyncStuff 类的对象并执行其 execute() 方法,但这也不起作用,因为它不在封闭类中。我无法将它移到其他地方,因为我需要更新 UI,因此它需要保留在 MainActivity 类中。
无论如何,我需要帮助来弄清楚为什么我的 ExecuteAsyncMethod() 方法无法编译。
谢谢!!
最佳答案
这样定义:
public static class AsyncStuff extends AsyncTask<String, Void, String> {
...
}
然后像这样运行:
public class Util {
public void ExecuteAsyncMethod(){
new AsyncStuff().execute(new String[]{"test" });
}
}
关于java - 不能从静态上下文中引用非静态方法 execute(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31464635/