pendingIntent在给定半径内再次触发。

时间:2012-02-27 08:43:36

标签: android android-intent android-notifications android-alarms android-pendingintent

我在应用程序中设置了多个近似警报。我以这种方式设置通知:

private void addProximityAlert(double latitude, double longitude) {

        try{

            LatLonPair latLon;
            for(int i = 0; i < mPositions.size(); i++) {
                latLon = mPositions.get(i);
                Intent intent = new Intent(PROXIMTY_ALERT_INTENT);
                intent.putExtra(ProximityIntentReceiver.EVENT_ID_INTENT_EXTRA, i);
                intent.putExtra(ProximityIntentReceiver.ITEM_NAME,latLon.getItemName());
                intent.putExtra(ProximityIntentReceiver.PLACE_NAME,latLon.getPlaceName());
                PendingIntent proximityIntent = PendingIntent.getBroadcast(this, i, intent, 0);
                locationManager.addProximityAlert(latLon.getLatitude(), latLon.getLongitude(), radius, expiration,  proximityIntent);// alerts set here.
                IntentFilter filter = new IntentFilter(PROXIMTY_ALERT_INTENT);
                registerReceiver(new ProximityIntentReceiver(), filter);            

            }

        }
        catch(Exception ex){
            ex.toString();
        }

      }

所有存储的位置寄存器立即进行接近警报。现在当一个通知发生时发生了什么并且在给定半径内再次继续发射。我需要帮助我如何删除已经触发的警报,一旦设备仍处于定义半径时不会再次发出通知。

2 个答案:

答案 0 :(得分:0)

ProximityIntentReceiver中的

取消注册接收器,以便不再调用它。

请参阅unregisterReceiver

答案 1 :(得分:0)

问题不在于删除警报。问题是你要多次注册接收器。只做一次。