And*_*rew 6 service android battery
我有一个跟踪用户位置的服务.当前,服务在应用程序启动时启动,在应用程序终止时停止.不幸的是,如果用户将应用程序保留在后台,则服务永远不会停止并耗尽电池电量.
当我的应用程序不在前台时,我希望服务停止.我希望Application类能让我覆盖onPause和onResume处理程序,但它没有它们.还有另一种方法可以实现这一目标吗?
Pet*_*yle 5
我还没有测试过这个,但看起来如果你使用Context#bindService()(而不是Context#startService()),服务应该在没有更多活动绑定时停止.(请参阅服务生命周期).
Context#bindService()
Context#startService()
然后使用onPause()/ onResume()在每个活动中绑定/取消绑定服务.
onPause()
onResume()
或者,您可以在服务上添加一对方法,告诉它开始/停止侦听位置更新并从每个活动的onResume()/中调用它onPause().该服务仍将运行,但位置更新不会耗尽电池.
for*_*all 0
您应该重写Activity上的onPause和onResume方法。如果您有多个活动,您可能希望为它们拥有一个公共基类,并将开始/停止逻辑放入基类中。
归档时间:
15 年,8 月 前
查看次数:
5942 次
最近记录:
9 年,3 月 前