Java 为什么播放声音的活动会干扰用户界面?
我想显示一个通知,并在用户点击该通知时播放声音。当我使用活动播放声音时,它会以某种方式起作用,正如我在自己对这个问题的回答中所写的那样:(在这个问题和答案中,还有一些源代码显示了我如何创建通知以及我的Java 为什么播放声音的活动会干扰用户界面?,java,android,android-activity,android-mediaplayer,android-notifications,Java,Android,Android Activity,Android Mediaplayer,Android Notifications,我想显示一个通知,并在用户点击该通知时播放声音。当我使用活动播放声音时,它会以某种方式起作用,正如我在自己对这个问题的回答中所写的那样:(在这个问题和答案中,还有一些源代码显示了我如何创建通知以及我的PlaySoundActivity的外观 然而,我意识到,当声音播放时,我的主应用程序的外观会发生变化,如果不关闭应用程序,它将无法恢复 我已经从“选项卡式活动”项目模板创建了我的应用程序 以下是启动后的情况: 这就是当我点击声音通知时的样子(各部分已消失): 有人能解释为什么会发生这种情况吗?
PlaySoundActivity
的外观
然而,我意识到,当声音播放时,我的主应用程序的外观会发生变化,如果不关闭应用程序,它将无法恢复
我已经从“选项卡式活动”项目模板创建了我的应用程序
以下是启动后的情况:
这就是当我点击声音通知时的样子(各部分已消失):
有人能解释为什么会发生这种情况吗?使用活动播放声音是一种错误的方法吗?但当我使用服务时,它在这里不起作用,我什么也听不到!如何解决这个问题?根据Android开发者参考,“几乎所有活动都与用户交互,因此Activity类负责为您创建一个窗口,您可以在其中使用setContentView(视图)放置UI。” 我没有这样做。因此显示了一个新窗口,但没有内容 播放声音的更好解决方案是使用
PlaySoundService
(service!!!)而不是活动。它包含与活动几乎相同的代码,但挂起的意图是使用pendingent.getService(…)
而不是pendingent.getActivity(…)创建的
。使用错误的方法不会产生明显的错误消息,但服务将无法按预期工作