gpt4 book ai didi

android - Activity 类型中的方法 runOnUiThread(Runnable) 不适用于参数 (void)

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

我正在尝试从非 UI 线程在 onUtteranceCompleted() 中创建一个对话框:

runOnUiThread(
new Thread(new Runnable() {
public void run() { MyDialog.Prompt(this); }
}).start());

Prompt() 是 MyDialog 类的一个简单的静态方法:

  static public void Prompt(Activity activity) {
MyDialog myDialog = new MyDialog();
myDialog.showAlert("Alert", activity);
}

问题是我尝试执行的操作遇到了两个错误:

  1. 方法 runOnUiThread(Runnable)在 Activity 类型中不是适用于参数(无效)
  2. Prompt(Activity) 中的方法类型 MyDialog 不适用对于参数 (new Runnable(){})

我想要的只是通过将对话框创建推迟到 UI 线程来“做正确的事”,但我似乎遗漏了一些基本的东西。

我缺少什么以及如何完成我想要完成的看似简单的任务?

最佳答案

必须是:

runOnUiThread(new Runnable() {
public void run() { MyDialog.Prompt(NameOfYourActivity.this); }
});

它说 不适用于参数 (void) 因为您正在尝试使用 start 方法(这是一个 void 方法)运行线程。 runOnUiThread 收到一个可运行的对象,您不必担心启动它,这是由操作系统为您完成的。

关于第二个错误,它的发生是因为在该范围内 this 指的是您正在初始化的 Runnable 对象,而不是对 Activity 的引用。因此,您必须明确说明您指的是什么 this(在本例中为 YourActivityName.this)。

关于android - Activity 类型中的方法 runOnUiThread(Runnable) 不适用于参数 (void),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5494673/

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