我的应用程序使用远程服务来播放音频。我这样做是为了让没有任何活动拥有音频的播放 - 用户可以触发一些音频从一个活动中播放,并且当他们在应用程序中导航时,音频将继续播放。但是,我确实想告诉服务在用户“卸载”应用程序时暂停或停止播放音频,方法是退出、锁定显示或点击主页。当应用程序是单个活动时,我在 onPause 中执行此操作。所以,我想我本质上是在应用程序/任务级别寻找“onPause”。这样的事情存在吗?如果不是,那么获得通知任务已被用户搁置的“最佳实践”方式是完全退出还是点击主页?
问问题
1002 次
2 回答
5
嗯......不幸的是,我怀疑那里没有简单的答案。我认为这就是为什么内置媒体播放器和 Pandora 使用通知来轻松让用户回到应用程序使其关闭。
如果您的活动流程是相当线性的,那么退出应用程序与退出初始活动相同。
我在一个场景中使用的一个技巧是让每个活动在onPause()
和中通知服务onResume()
。该服务将监视这些,如果在一段时间内onPause()
没有后续onResume()
,则假定用户已离开(家庭、来电、传入短信、通过通知响应某些应用程序等)。
您还可以观看ACTION_SCREEN_OFF
广播Intents
,以处理这种情况。
很抱歉,我没有更好的灵丹妙药答案——也许其他人会有更好的主意。
于 2009-11-14T16:28:20.320 回答
1
我的情况有点类似,基本上我按照马克的建议做了;我只是让服务计算对我的 registerCallback() 和 unregisterCallback() API 的调用,而不是单独的通知,这是每个活动都需要做的。
于 2009-11-16T06:50:13.083 回答