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

чувак, если мой ответ полезно и, то и можно голосовать до –

ответ

0

dude try 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

yes finish() работает отлично благодаря мужчине. но когда-нибудь в другом приложении, это не сработало. поэтому я использовал метод процесса уничтожения. Я не понимаю, почему подходы работают по-разному в разных приложениях. – siva

+0

привет, пожалуйста, скажите мне, что мне делать, чтобы узнать об использовании tts для синхронизации различных событий в моем приложении. Это раздражает меня, я не понимаю, как синхронизировать события и tts. – siva

+0

Что нового в этом коде, я даже не получил его немного. мольбы объясняют мне. а также разницу между финишем и убить – siva

0

Разве у вас нет {} вокруг цикла while? например

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

как можно ур подход является правильным Yaar, пока tts все еще говорит, я должен подождать, вот почему я использовал одну строку. после выключения двигателя tts, а затем уничтожить текущий процесс ... – siva

+1

Отключить тему. Наличие «в то время» в узком цикле часто является плохим. Вы должны рассмотреть либо «Thread.yield()», либо «Thread.sleep()», чтобы предотвратить зависание системных ресурсов. –

Смежные вопросы