当前位置: 首页 > 面试题库 >

只能从应用程序的主线程使用Android SpeechRecognizer

钱劲
2023-03-14
问题内容

我正在尝试在基于AndEngine的游戏中集成一些Android语音API。

我将代码放在BaseGame活动中-但是此错误在运行时出现:

05-06 23:51:28.955:错误/
AndroidRuntime(553):java.lang.RuntimeException:SpeechRecognizer仅应从应用程序的主线程使用

如何访问应用程序主线程?以及如何确保我的语音代码在其中运行。

设置如下:

主类-BaseGameActivity SpeechClass

主类实例化一个新的SpeechClass +调用其方法-然后出现上述错误。

请提供有关如何正确执行此操作的建议。


问题答案:

SpeechClass通过执行以下操作在主线程上调用:

final SpeechClass c = getSpeechClass(); // get the speech class

View v = findViewById(R.id.anyview); //fetch a View: any one will do

v.post(new Runnable(){ public void run(){ c.doSomething(); }});

那应该在主线程上运行它。如果doSomething要花一些时间,可能会使UI变慢,但是您可以解决这个问题。



 类似资料:
  • 问题内容: 我正在编写一个GUI应用程序,该应用程序通过Web连接定期检索数据。由于此检索需要一段时间,因此这会导致UI在检索过程中无响应(无法拆分成较小的部分)。这就是为什么我想将Web连接外包给一个单独的工作线程。 [是的,我知道,现在我有两个问题。] 无论如何,该应用程序使用PyQt4,所以我想知道更好的选择是:使用Qt的线程还是使用Python threading模块?各自的优点/缺点是什

  • 问题内容: 为了在Linux上开发高度网络密集型服务器应用程序,首选哪种架构?这个想法是,该应用通常可以在具有多个内核(虚拟或物理)的机器上运行。考虑到性能是关键标准,选择多线程应用程序还是采用多进程设计更好?我确实知道资源共享和从多个进程访问此类资源的同步是很多编程开销,但是如前所述,整体性能是关键要求,因此我们可以忽略这些事情。编程语言为C / C ++。 我听说,即使是多线程应用程序(单个进

  • 我是Android SDK/API环境的新手。这是我第一次试着画一张图/图表。我尝试使用3个不同的免费库在模拟器上运行不同类型的示例代码,但布局屏幕上没有显示任何内容。logcat将重复以下消息: 当我运行与一个许可库的评估副本相关的示例代码时,问题并没有持续存在,并且图表工作了。

  • 当我在emulator上启动应用程序时,我发现以下消息 我看到有很多类似的问题,但每个问题都有不同的解决方案。Tnx很多! 日志猫 搜索ictionary.java WordActivity.java 字典提供程序。Java语言 公共类DictionaryProvider扩展ContentProvider{String TAG="DictionaryProvider";

  • 我对Android非常陌生,在我的应用程序中,当我点击添加在碎片类上的按钮时,我在活动上添加了碎片,我在我的日志猫上得到警告,如下所示- 跳过91帧!应用程序可能在其主线程上做了太多工作。 请帮帮我我该怎么解决这个?

  • 我想让我的应用程序提供选项有黑暗主题和浅色主题给用户,应用程序的主题将成为什么用户选择。 我如何用Android Jetpack Compose实现这一点? 我一直在浏览应用主题化的Android codelabs,发现了以下代码片段: 但是上面的代码是用来改变“系统”主题对应的主题,而不是用户在应用程序中选择什么。