2

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

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

我们试图在屏幕上没有任何视觉效果的情况下这样做,就像系统服务可以工作一样。现在我已经尝试将我们的系统实现为服务,但是我遇到了线程和 Android 杀死我的服务的问题。

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

要求是:

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

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

提前致谢,

马科斯。

4

1 回答 1

1

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

于 2012-04-30T22:51:00.423 回答