我的用例:
- 我的应用程序有例如我从服务器获取的3个lon / lat位置。这些可能在提取之间发生变化。 - 我想为所有这三个添加proximityalerts,但是当我重新获取我希望重新创建感兴趣区域的位置时,如果lon / lats已经改变。
我已经在位置管理器中看到了这些方法并找到了一些示例,但我看不到" removeAll"任何地方的方法,我也找不到办法。所有处理我必须创建pendingintent,提醒并注册每个位置的接收器,每次都有一个唯一的ID ...
我原本希望基本上对我所有的感应区使用相同的intent / pendingintent,所以当我稍后调用remove时,我只需要调用一次方法,并且我的所有感应区都会被移除,就像下面的代码一样。
任何提示?这完全不可能吗?
//CREATE (i would use the same way to create intent for all my proximity alerts, and have one broadcastreciever that receives all for the intent with that ID):
Intent intent = new Intent(PROX_ALERT_INTENT_ID);
PendingIntent proximityIntent = PendingIntent.getBroadcast(activity.getApplicationContext(), 0, intent, 0);
lm.addProximityAlert(
latitude,
longitude,
POINT_RADIUS,
PROX_ALERT_EXPIRATION,
proximityIntent
);
//REMOVE:
Intent intent = new Intent(PROX_ALERT_INTENT_ID);
PendingIntent proximityIntent = PendingIntent.getBroadcast(activity.getApplicationContext(), 0, intent, PendingIntent.FLAG_NO_CREATE);
//i had hoped that this call would remove all alerts at once?
lm.removeProximityAlert(proximityIntent);