2012-03-01 120 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