2014-09-11 71 views
0

我在Android中使用文本到語音引擎。我在OnCreate之後直接調用onPause的方式遇到問題。所以首先有辦法阻止這種情況發生?文本到語音呼叫onPause OnCreate後

我有一個遊戲,其中有一個菜單活動和一個遊戲活動;當用戶點擊後退按鈕從GAME活動中調用onPause時,我在這裏使用onPause來做一些有用的事情,比如停止倒計時和停止TTS引擎。

當onCause在onCreate之後被調用並且它試圖停止一個不計數的計數器和一個未初始化的TTS引擎時,就會出現問題。我已經設法通過開啓onCreate的虛假倒計時來排除倒計時,以便onPause停止,我可以爲TTS引擎做同樣的事情,但這顯然不是一件好事。

任何人都可以想到另一個更清潔的方式呢?

感謝

@Override 
public void onPause() { 
    super.onPause(); 
    timerCount.cancel(); 
    mTts.stop(); 
    mTts.shutdown(); 
} 
+0

您是否嘗試過使用onStop而不是onPause? – 2014-09-11 08:49:01

+0

嗨佩德羅 - onStop沒有被稱爲當我回到菜單活動。說實話,我不是100%的Android生命週期管理,有沒有辦法強制onStop在我想要的時候被調用? – 2014-09-11 08:58:31

+0

你做什麼(代碼)從遊戲活動到菜單活動?你完成遊戲活動了嗎?因爲如果onStop是nto beeing調用,那麼你的活動還沒有完成 – 2014-09-11 09:01:36

回答

0

如果任何人有在未來同樣的問題,要解決的方式TTS調用的onPause後的onCreate,並導致問題是要麼使用onBackPressed命令或(如佩德羅提到)在onCreate上設置一個爲false的標誌並將onPause設置爲true。