所以我在我的android應用程序中有一個活動,它在開始時運行。
此活動只是一個帶有開始按鈕的頁面。
當我按下啓動按鈕,它調用另一個活動,並自行關閉:Android - 關閉活動後,當我再次運行應用程序時,兩個活動同時運行。我怎樣才能避免它?
Intent i = new Intent(this, Dictating.class);
startActivity(i);
finish();
的其他活動使用文本到語音口述一些單詞。
現在我發生了一些奇怪的事情:
1)我聽聽口述。
2)我按下後退按鈕:聽寫停止(我想要的)
3)我再次運行應用程序,按下開始按鈕。現在我開始了新的活動,並開始口述,但是在後面,我可以聽到舊的活動恢復到原來的位置,並繼續聽寫。
我想要新的活動重新開始,而不是保持其他活動。
我該怎麼做?
PS:這是一個活動的問題,而不是因爲我沖洗文本到語音每次文本到語音的問題,它不能被保存在內存
謝謝
編輯:
這裏是我的聽寫類的OnCreate,有萬噸的在這個類的代碼,我顯然不希望發佈我的代碼,所以這裏是一些地方:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.streaming);
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
this.txtCurrentWord = (TextView) findViewById(R.id.txtCurrentWord);
this.btnPlayPause = findViewById(R.id.btnPlayPause);
this.btnPlayPause.setOnClickListener(this);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
this.tts = new TextToSpeech(this, this);
} else {
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
還有一些奇怪的薄gs我這樣做:
Runnable task = new Runnable() {
public void run() {
//runs on ui
runOnUiThread(new Runnable() {
public void run() {
readNextWord();
}
});
}
};
worker.schedule(task, 1, TimeUnit.SECONDS);
這延遲了下一個字一秒,然後執行在主UI線程中的功能。
@Override
public void onDestroy() {
tts.shutdown();
super.onDestroy();
}
發佈您的'聽寫'的代碼。類' – Squonk 2012-02-20 21:04:48
我已經添加了代碼 – xtrimsky 2012-02-20 21:19:37
的某些部分行,但是當活動關閉時,您正在沖洗TTS的位置在哪裏? – Squonk 2012-02-20 21:26:36