只要设备启动,我就有一个在后台运行的位置服务。我通过调用LocationManager requestLocationUpdate方法请求网络和gps提供程序更新,但是,通过启用或禁用位置服务更改“我的位置”设置页面时,永远不会调用onProviderEnabled或ProviderDisabled。所以我想知道每次用户更改位置设置时我的后台服务如何得到通知?我可以在缓存广播消息的接收方模式下进行吗?
答案 0 :(得分:0)
是的,您可以在服务中实现扩展的BroadcastReceiver类,以监听GPS开/关广播。当GPS打开或关闭时,它不会调用onProviderEnabled()方法,而是调用GpsStatus.OnGpsStatusChanged()方法。
更改GPS时发送的广播具有事件值:
GPS_EVENT_STARTED GPS_EVENT_STOPPED
请参阅BroadcastReceiver API,了解如何实施广播接收器。