pendingIntent - снова огонь в заданном радиусе. - PullRequest
0 голосов
/ 27 февраля 2012

Я установил несколько приблизительных предупреждений в приложении.я установил уведомления следующим образом:

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 голосов
/ 23 мая 2014

Проблема не в том, чтобы удалить оповещения.Проблема в том, что вы регистрируете получателя несколько раз.Сделай это только один раз.

0 голосов
/ 27 февраля 2012

в ProximityIntentReceiver отменяет регистрацию получателя, чтобы он больше не вызывался.

См. unregisterReceiver

...