我使用特定的声音来通知用户某些事件。但是,如果活动不在前台,我不希望应用程序用声音通知用户。
如何检查应用程序是否在后台运行?
扩展mco的答案,如果您有前台活动,您的GCMIntentService
需要做一些将触发您的前台活动中的工作的事情。通常,您将通过在onResume()
中设置活动以响应某种消息并在onPause()
中删除该消息来实现此目的。
"Some sort of message"可以是:
-
LocalBroadcastManager
发送的Intent
报文 - 通过经典
sendBroadcast()
发送的Intent
- 通过消息总线的消息,如Otto
- 等。
在Activity周期中,onResume在应用程序变得可见(前台)时被调用,onPause在应用程序不可见(后台)时被调用。
当应用程序是后台/前台时,你可以使用这些函数做任何你想做的事情。