2

我的用例:

-我的应用程序有例如 3 个我从服务器获取的 lon/lat 位置。这些可能会在提取之间发生变化。-我想为所有三个添加邻近警报,但是当我重新获取位置时,我希望重新创建邻近警报,以防经度/纬度发生变化。

我已经看到了 locationmanager 中的方法并找到了一些示例,但是我在任何地方都看不到“removeAll”方法,也没有找到方法。所有这些我都必须为每个位置创建待处理的意图、警报和注册接收器,每次都有一个唯一的 ID...

我曾希望对我的所有接近警报基本上使用相同的意图/待定意图,这样当我稍后调用删除时,我只需要调用一次该方法,并且我的所有接近警报都会被删除,如下面的代码。

有小费吗?这完全不可能吗?

//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);
4

0 回答 0