アクティビティのライフ サイクルを示すために、TextToSpeech メッセージを追加しました。
mTts.speak ("<some text>", TextToSpeech.QUEUE_ADD, null);
、、、およびonCreate
_ _onResume
onPause
調査結果:
ではonCreate
、読み上げられるテキストが聞こえません (明らかに、アクティビティがまだ再開されていないためですか?)。
onPause では、話されたテキストが切断されました (明らかに、テキストが話されている間にアクティビティを離れたためですか?)。
ループの構築
while(mTts.isSpeaking()){}
テキストが完全に話されたことを確認しました。
の動作はさらに奇妙ですonResume
:
テキスト
onResume
が話されていないアクティビティを開始します。HW ホーム ボタンを押してアプリを再度開くと、onResume のテキストが読み上げられます。
もちろんonResume
、どちらの場合も実行されます。実際のところ、文字列を割り当てました
in
onResume
:speakOnResume
= "再開時"in
onCreate
:speakOnCreate
= "作成時"
呼び出したアクティビティにイベントコールバックを追加しました
mTts.speak (speakOnResume + " " + speakOnCreate, TextToSpeech.QUEUE_ADD, null);
そしてもちろん、その女性は予想通りに話しました
今質問:
onResume
アクティビティを最初から開始するときと、(言葉の意味で)停止/破棄せずに一時停止した後に再開するときの動作が異なるのはなぜですか?