我正在编写一个节拍器应用程序,当用户在应用程序之外(浏览等)并且没有有意识地按下停止按钮时,我希望在服务中运行声音。
似乎我应该使用startForeground(),因为它不是你想要在背景中没有注意的事情,我真的不希望服务随时被杀死。理想情况下,我不会在应用程序处于焦点时显示通知。我注意到Google Play音乐应用程序以这种方式工作,它仅在应用程序外部显示通知。是否有人能够告诉我他们是如何做到这一点的,我会发现很难相信他们在阅读所有文档之后不会使用startForeground(),说明你应该将它用于这种应用程序?
另一方面,这是真正理想的行为吗?这对我来说似乎很好,但我注意到我使用长期运行的服务(HTC的音乐应用程序,导航,其他几个)几乎所有其他应用程序始终显示通知图标,无论是否在应用程序中。我对什么是正确的行为感兴趣。任何帮助非常感谢,谢谢。
答案 0 :(得分:1)
有人能告诉我他们是如何做到的吗
当他们的某个活动返回到前台时,他们可能会调用stopForeground()
;当他们认为用户离开时,他们可能会调用startForeground()
(例如onUserLeaveHint()
)。
我对被认为是正确的行为感兴趣。
我不认为这个领域有明确的“正确行为”。执行其他应用程序的操作更容易,并保留Notification
,直到用户表明他们不再需要运行后台工作。
请注意,虽然您可能希望“当用户在应用程序之外时继续运行”,但用户可能不会。某些类型的应用程序(例如,音乐播放器)可以安全地假设用户希望音频继续前进;一个节拍器,恕我直言,没有达到那个水平。请允许用户配置此行为,例如通过SharedPreference
。