3

我正在编写一个节拍器应用程序,我有一个服务运行的声音,当用户在应用程序之外(浏览等)并且没有有意识地按下停止按钮时,我想继续运行该服务。

看来我应该使用 startForeground() 因为它不是你想要在后台不注意的那种东西,而且我真的不希望服务随时被杀死。理想情况下,我不会在应用程序处于焦点时显示通知。我注意到 Google Play 音乐应用程序以这种方式工作,它只在应用程序外显示通知。有没有人能告诉我他们是如何做到这一点的,在阅读所有说明您应该将它用于此类应用程序的文档后,我很难相信他们不会使用 startForeground() ?

另一方面,这真的是理想的行为吗?这对我来说似乎很好,但我注意到我使用的几乎所有其他应用程序与长期运行的服务(HTC 的音乐应用程序,导航,少数其他)始终显示通知图标,无论是否在应用程序中。我对什么被认为是正确的行为感兴趣。非常感谢任何帮助,谢谢。

4

1 回答 1

1

有谁能告诉我他们是怎么做到的

他们可能会在他们stopForeground()的一项活动返回到前台时调用,并且startForeground()当他们认为用户已经离开时(例如,onUserLeaveHint())。

我对什么被认为是正确的行为感兴趣。

我认为这方面没有明确的“正确行为”。做其他应用程序所做的事情并离开Notification周围会更容易,直到用户表示他们不再希望后台工作运行。

请注意,虽然可能希望“在用户在应用程序之外时继续运行”,但用户可能不会。某些类型的应用程序(例如,音乐播放器)可以安全地假设用户希望音频继续播放;一个节拍器,恕我直言,没有上升到那个水平。请允许用户配置此行为,例如通过SharedPreference.

于 2013-04-26T17:22:54.597 回答