2012-03-01 119 views
0

我有一個應用程序,我需要在應用程序詢問用戶的確認後終止應用程序。我正在使用下面的代碼片段。不能殺死當前進程android

while(tts.isSpeaking()); 

tts.speak("Quitting application",TextToSpeech.QUEUE_FLUSH, null); 

    while(tts.isSpeaking()); 
    tts.shutdown(); 
    int pid = android.os.Process.myPid(); 
    android.os.Process.killProcess(pid); 

tts引擎正在說「退出應用程序」。屏幕在一段時間內空白。之後,應用程序重新啓動。我不明白我出錯的地方。

我也嘗試過System.exit(0)。仍然發生同樣的事情。告訴我正確的方法。我在使用tts時也遇到了一些問題。在應用程序運行期間,我無法同步說話和許多事件。我怎樣才能克服這個問題?

+0

花花公子如果我的回答是有幫助的ü那麼在哪裏投了 – 2013-01-17 12:59:37

回答

0

夥計嘗試finish()它將完成活動並指定括號。不使用 int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid);,而內部並殺死整個應用程序中使用
記住
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent);

+0

是完成()工作正常感謝的人。但有時回到另一個應用程序,它不起作用。所以我使用了殺死處理方法。我不明白爲什麼這些方法在不同的應用程序中有所不同。 – siva 2012-03-01 17:26:14

+0

嘿,夥計,你可以告訴我,我應該怎麼做才能知道使用tts來同步應用程序中的各種事件。它讓我感到惱火,我不知道如何同步事件和tts。 – siva 2012-03-01 17:28:44

+0

新的代碼是什麼,我甚至沒有得到它。請求解釋我。以及完成和終止之間的差異 – siva 2012-03-01 17:36:01

0

你不應該在while循環周圍使用{}嗎?例如

while(tts.isSpeaking()) { 
    tts.shutdown(); 
    int pid = android.os.Process.myPid(); 
    android.os.Process.killProcess(pid); 
    } 
+0

怎能UR的做法是正確的yaar,而tts仍然在說話,我應該等,這就是爲什麼我使用了一條線。在u關閉tts引擎後,然後終止當前進程... – siva 2012-03-01 17:23:51

+1

偏離主題。在一個緊密的循環中有一個'while'通常是一個壞主意。您應該考慮使用'Thread.yield()'或'Thread.sleep()'來防止該線程佔用系統資源。 – 2012-04-17 03:46:27