为了演示活动生命周期,我添加了 TextToSpeech 消息
mTts.speak ("<some text>", TextToSpeech.QUEUE_ADD, null);
当我通过onCreate
,onResume
和时听到onPause
。
发现:
在onCreate
中,您听不到要朗读的文本(显然是因为活动尚未恢复?)。
在 onPause 中,说出的文本被破坏了(显然是因为在说出文本时离开了活动?)。
建立一个循环
while(mTts.isSpeaking()){}
确保文本已完全说出。
更奇怪的是onResume
:
开始活动中的文本
onResume
不会被说出。按下 HW Home 按钮并再次打开应用程序,会说出 onResume 中的文本。
当然onResume
在这两种情况下都执行。事实上,我分配了一个字符串
在
onResume
:speakOnResume
=“在简历上”在
onCreate
:speakOnCreate
=“创建时”
并向我调用的活动添加了一个事件回调
mTts.speak (speakOnResume + " " + speakOnCreate, TextToSpeech.QUEUE_ADD, null);
这位女士当然如预期般说话
现在的问题:
任何想法,为什么onResume
从头开始活动时的行为与(在这个词的意义上)在它暂停而不停止/破坏后恢复它时表现不同?