关闭应用程序的问题

时间:2012-11-24 00:39:24

标签: android

我正在研究一个Android项目,我有一个关于关闭问题的问题。我的问题是我想在关闭应用程序之前使用文本到语音。但它只是关闭而不是谈论如何解决这种情况。这是我的代码

    if (item.getTitle()== "ExitItem"){

            say("Bye Master,May The Force Be With You");

                finish();

我相信这很容易,但由于时间已晚,我无法正确思考:DD无论如何都有美好的一天

    public void say(String text2say){
    talker.speak(text2say, TextToSpeech.QUEUE_FLUSH, null);
}

@Override
    public void onInit(int status) {

}
@Override
public void onDestroy() {
    if (talker != null) {
        talker.stop();
        talker.shutdown();
}                   

2 个答案:

答案 0 :(得分:0)

我不确定这是否能完全解决问题并且您只发布了一些代码,但我注意到的第一件事就是您使用==来比较字符串糟糕的做法。

尝试将其更改为:

if (item.getTitle().equals("ExitItem") {

此外,如果say方法异步执行,则finish()可能会在say方法有机会执行任何操作之前调用并执行。{/ p>

编辑:由于它是异步完成的,因此您需要使用onUtteranceCompleted来捕获文本到语音短语的时间。

TextToSpeech tts = new TextToSpeech(context, new OnInitListener() {

 @Override
 public void onInit(int status) {

    mTts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() {

        @Override
        public void onUtteranceCompleted(String utteranceId) {

            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    finish();
                }
            });
        }
    });

 }
});

答案 1 :(得分:0)

onUtteranceCompleted OnUtteranceProgress 将帮助您跟踪通话进度。相应地放置完成()。