1

为了演示活动生命周期,我添加了 TextToSpeech 消息

mTts.speak ("<some text>", TextToSpeech.QUEUE_ADD, null);

当我通过onCreate,onResume和时听到onPause

发现:

onCreate中,您听不到要朗读的文本(显然是因为活动尚未恢复?)。

在 onPause 中,说出的文本被破坏了(显然是因为在说出文本时离开了活动?)。

建立一个循环

while(mTts.isSpeaking()){}

确保文本已完全说出。

更奇怪的是onResume

  • 开始活动中的文本onResume不会被说出。

  • 按下 HW Home 按钮并再次打开应用程序,会说出 onResume 中的文本。

当然onResume在这两种情况下都执行。事实上,我分配了一个字符串

  • onResumespeakOnResume=“在简历上”

  • onCreatespeakOnCreate=“创建时”

并向我调用的活动添加了一个事件回调

mTts.speak (speakOnResume + " " + speakOnCreate, TextToSpeech.QUEUE_ADD, null);

这位女士当然如预期般说话

现在的问题:

任何想法,为什么onResume从头开始活动时的行为与(在这个词的意义上)在它暂停而不停止/破坏后恢复它时表现不同?

4

0 回答 0