gpt4 book ai didi

Android Activity.runOnUiThread 不是静态的,那么我该如何使用它呢?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:13 24 4
gpt4 key购买 nike

例如,如果我有一个线程在做昂贵的事情,并且我想从该线程触发 Main( Activity )类中的 runOnUiThread。显然我不应该创建我的 Activity 类(Main)的实例。所以如果我尝试

 Main.runOnUiThread(mRunnable);

在我的线程中,它给了我一个错误,说它不是静态方法,因此无法以我的方式访问它。现在我的理解是, Activity 类几乎是以静态方式访问的。
我该怎么做?

(顺便说一句:我这样做是因为我得到了CalledFromWrongThreadException,只有创建 View 层次结构的原始线程才能触及它的 View )

最佳答案

Raunak 的想法很正确。我将补充一点,您还可以在方法 sendEmptyMessage 中指定一个整数作为处理程序的标识符。这将允许您创建一个可以处理所有 UI 更新的处理程序,例如

public static final int EXAMPLE = 0;
public static final int ANOTHER_EXAMPLE = 1;

private final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch( msg.what ){
case EXAMPLE:
//Perform action
break;
case ANOTHER_EXAMPLE;
//Perform action
break;
}
}
}

//Call to submit handler requesting the first action be called
handler.sendEmptyMessage(EXAMPLE);

希望这对您有所帮助!

关于Android Activity.runOnUiThread 不是静态的,那么我该如何使用它呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com