我正在使用PendingIntent调用requestLocationUpdates。后来我想知道这个请求是否仍然有效。我怎么能这样做?
我知道我是否调用了removeLocationUpdates,但我希望可能有其他方法可以阻止位置更新,我不想错。
这个问题不是关于地理围栏。
答案 0 :(得分:1)
根据:
http://developer.android.com/reference/com/google/android/gms/location/LocationClient.html
如果您正在寻找地理围栏:
static List<Geofence> getTriggeringGeofences(Intent intent)
Returns a list of geofences that triggers this geofence transition alert.
否则:
不,你不能以通用的方式提问。那说如果你有一个听众,有几种感兴趣的方法:
boolean isConnectionCallbacksRegistered(GooglePlayServicesClient.ConnectionCallbacks listener)
Returns true if the specified listener is currently registered to receive connection events.
boolean isConnectionFailedListenerRegistered(GooglePlayServicesClient.OnConnectionFailedListener listener)
Returns true if the specified listener is currently registered to receive connection failed events.
void registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks listener)
Registers a listener to receive connection events from this GooglePlayServicesClient.
void registerConnectionFailedListener(GooglePlayServicesClient.OnConnectionFailedListener listener)
Registers a listener to receive connection failed events from this GooglePlayServicesClient.
所有这些都会告诉你有关你的特定听众的信息。我没有看到任何一般会回答问题的代码&#34;你有没有人听过你的任何事情&#34;?
您可以使用内省来强制API使其中的一些内部可见,但您可以完成您想要的其他一些不那么丑陋的方式。
你想要完成什么?
编辑:
同样来自文档:
public void requestLocationUpdates(LocationRequest request, PendingIntent callbackIntent)
使用指定的回调请求位置更新 的PendingIntent。
此方法更适用于后台用例 用于接收位置更新,即使应用程序已被杀死 系统。为此,请使用PendingIntent进行启动 服务。对于前台用例,LocationListener版本 建议使用方法,请参阅requestLocationUpdates(LocationRequest, LocationListener的)。
此PendingIntent上注册的任何先前的LocationRequests都将是 替换。
这是什么意思?
1)您的请求已上演,并且不会被取消,直到您明确致电
public void removeLocationUpdates (PendingIntent callbackIntent)
2)即使您的应用被系统杀死也是如此。 (假设背景用例。我对前台使用案例不确定。)
3)如果LocationClient已停止接收更新 - 您的意图不会得到通知。你必须打电话:
isConnected()检查客户端当前是否已连接到 服务,以便对其他方法的请求将成功。布尔
isConnecting()检查客户端是否正在尝试连接到 服务。使用KEY_LOCATION_CHANGED键和a发送位置更新 意图的位置值。
参数request更新的位置请求。 callbackIntent为每个位置更新发送的待处理意图。
以后再说一点 - 我会检查一下LocationClient是否已连接/连接。如果不是,可以安全地假设您的意图不会被解雇 - 尽管它仍然被注册。一旦你再次联系你的意图应该仍然注册。