【问题标题】:Threading android doubts线程化android的疑惑
【发布时间】:2012-04-30 22:39:53
【问题描述】:

我正在研究将人机对话开源系统 JVoiceXML 从 Java 移植到 Android。该系统基于 VoiceXML 2.0 标准,该标准使用 XML 文档来创建人机交互。

这个想法是为 Android 提供一种方法来创建应用程序,这些应用程序使用 TTS 和 SpeechRecognizer android 引擎通过语音与用户交互。

我们试图在屏幕上不产生任何视觉效果的情况下这样做,就像系统服务可以工作一样。目前,我尝试将我们的系统实现为服务,但我遇到了线程问题,并且 Android 会终止我的服务。

问题是,您认为哪种方法最适合我的项目,AsyncTask、服务、Loader?也许是启动 AsyncTask 或 Loader 的服务?

要求是:

  1. 我的 VoiceXML Interpreter 被应用 Intent 启动(Intent 过滤器就是我现在拥有的方式)
  2. 它从应用程序接收文档。该应用程序还可以停止我的解释器,或者至少停止对该文档的解释。
  3. 口译员与 TTS 交互并创建语音识别器引擎。
  4. 解释器本身是一个 java 线程,必须从服务、加载程序或 asyncTask 启动。
  5. 只有一个应用可以使用我的解释器(无需并行连接)

如果需要更多信息来理解问题,请告诉我。

提前致谢,

马科斯。

【问题讨论】:

    标签: android multithreading service android-asynctask loader


    【解决方案1】:

    如果您的大部分工作已经在另一个线程中完成,我认为不需要 AsyncTask。只需使用您的服务中的口译员即可。如果您想在没有用户界面的情况下提供某些东西,无论如何您都需要一个服务。

    【讨论】:

    • 非常感谢您的回答。我正在使用服务,但由于解释器花费的时间太长,它被 ANR 杀死了......我将打开另一个问题,并提出一个更具体的问题。谢谢!
    猜你喜欢
    • 2013-01-07
    • 2018-11-30
    • 1970-01-01
    • 2017-08-31
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    相关资源
    最近更新 更多