Non-static method 'runOnUiThread(java.lang.Runnable)' cannot be referenced from a static context这个报错怎么办
时间: 2024-06-15 12:02:44 浏览: 13
这个报错是因为你在静态方法中调用了非静态方法runOnUiThread。runOnUiThread是Android中的一个方法,用于在主线程中更新UI。由于静态方法不依赖于类的实例,无法直接调用非静态方法。
要解决这个问题,你可以通过以下两种方式之一来解决:
1. 将静态方法改为非静态方法:如果可能的话,将包含runOnUiThread调用的方法改为非静态方法。这样就可以通过创建类的实例来调用runOnUiThread方法。
2. 使用Activity实例调用runOnUiThread:如果你在一个非Activity类中调用runOnUiThread,你可以传递一个Activity实例给该类,并使用该实例调用runOnUiThread方法。例如:
```java
public class MyClass {
private Activity mActivity;
public MyClass(Activity activity) {
mActivity = activity;
}
public void myMethod() {
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
// 在主线程中更新UI的代码
}
});
}
}
```
这样,你就可以在非静态方法myMethod中使用runOnUiThread方法了。