我有一项活动,它使用文字转语音引擎大声说出文字。这是:
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);
}
}
}
我面临的问题是,当说话结束时,用户改变屏幕方向时,会再次开始讲话。我想停止谈论方向改变。
答案 0 :(得分:2)
当方向更改时,活动将被销毁并重新创建。这适用于所有UI组件。另一方面,服务保持定向更改。 Use an Intent Service并向其发布含有文字按摩的意图。您可以将TTS代码放在onHandleIntent()
。
答案 1 :(得分:1)
在方向更改时,应用程序将重新启动。尝试在更改方向之前保存应用程序的状态,或者以纵向或横向模式锁定屏幕。