【问题标题】:Why does an activity playing a sound disturb the user interface?为什么播放声音的活动会干扰用户界面?
【发布时间】:2020-09-29 14:03:14
【问题描述】:

我想在用户点击该通知时显示通知并播放声音。当我使用活动来播放声音时,它会以某种方式工作,正如我在自己对这个问题的回答中所写的那样:How can I create a notification that plays an audio file when being tapped?(在这个问题和答案中,还有源代码显示了我如何创建通知以及我的@ 987654326@的样子。

然而,我已经意识到,在播放声音时,我的主应用程序的外观会发生变化,并且如果不关闭应用程序就无法恢复。

我从“选项卡式活动”项目模板创建了我的应用程序。

这是启动后的样子:

这就是我点击声音通知时的样子(部分已消失):

谁能解释为什么会这样?使用活动播放声音是错误的方法吗?但是当我使用服务时它在这里不起作用,我什么也没听到!如何解决?

【问题讨论】:

    标签: java android android-activity android-mediaplayer android-notifications


    【解决方案1】:

    根据 Android 开发人员参考,“几乎所有活动都与用户交互,因此 Activity 类负责为您创建一个窗口,您可以在其中放置带有 setContentView(View) 的 UI”。

    我没有这样做。因此显示了一个新窗口,但没有内容。

    播放声音的更好解决方案是使用PlaySoundService(服务!!!)而不是活动。它包含几乎与活动相同的代码,但未决意图是使用PendingIntent.getService(...) 而不是PendingIntent.getActivity(...) 创建的。使用错误的方法不会导致明显的错误消息,但服务将无法按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多