0

我有一个活动,它使用文本到语音引擎大声说出给定的文本。这里是:

public class AfterPassword extends Activity implements OnInitListener {
    private TextToSpeech tts;
    private String message = "This message will be spoken out.";
    static final int TTS_CHECK_CODE = 0;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.afterpassword);
        tts = new TextToSpeech(this, this);
    }
    @Override
    public void onInit(int initStatus) {
        if (initStatus == TextToSpeech.SUCCESS) {
            tts.speak(message, TextToSpeech.QUEUE_FLUSH, null);
        }
    }
}

我面临的问题是,当讲话结束时,偶然用户改变了屏幕方向,讲话又开始了。我想停止谈论方向变化。

4

2 回答 2

2

当方向改变时,Activity 被销毁并重新创建。这发生在所有 UI 组件上。另一方面,服务会停留在方向变化上。使用 Intent 服务并向其发布带有文本消息的 Intent。您可以将 TTS 代码放入onHandleIntent().

于 2013-09-08T13:05:47.447 回答
1

在方向改变时,应用程序重新启动。尝试在更改方向或将屏幕锁定为纵向或横向模式之前保存应用程序的状态。

于 2013-09-08T13:01:54.437 回答