2012-04-30 115 views
2

我正在研究從Java到Android的人機對話開源系統JVoiceXML的可移植性。該系統基於VoiceXML 2.0標準,該標準使用XML文檔來創建人與機器之間的交互。Threading android疑惑

這個想法是爲Android提供一種手段,通過語音使用TTS和SpeechRecognizer android引擎來創建與用戶交互的應用程序。

我們正在嘗試在屏幕上沒有任何視覺效果的情況下進行操作,就像系統服務可以工作一樣。現在我試圖將我們的系統作爲一種服務來實現,但是我在線程和Android上遇到了麻煩,導致我的服務中斷。

問題是,您認爲哪種方法最適合我的項目,AsyncTask,服務,Loader?也許一個啓動AsyncTask或Loader的服務?

的要求是:

  1. 我的VoiceXML解釋得到由一個應用程序意圖解僱了(意圖過濾器是如何I'm有它現在)
  2. 它臨危從應用程序的文件。此外,該應用可以阻止我的口譯員,或至少停止對該文件的解釋。
  3. 解釋器與TTS交互並創建語音識別器引擎。
  4. 解釋器本身是一個Java線程,必須從服務,加載器或asyncTask啓動。
  5. 只有一個應用程序可以利用我的翻譯(無需並行連接)的

請讓我知道如果需要更多的信息來理解這個問題。

在此先感謝,

馬科斯。

回答

1

如果大部分工作已經在另一個線程中完成,我沒有看到需要一個AsyncTask。只需使用您的服務中的翻譯。無論您想在沒有用戶界面的情況下提供某種服務,都需要服務。

+0

非常感謝您的回答。我正在使用一個服務,但是它被一個ANR殺死了,因爲這個解釋器需要很長時間......我會用一個更具體的問題來打開另一個問題。謝謝! – Marakatu