我在应用程序中设置了多个近似警报。我以这种方式设置通知:
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();
}
}
所有存储的位置寄存器立即进行接近警报。现在当一个通知发生时发生了什么并且在给定半径内再次继续发射。我需要帮助我如何删除已经触发的警报,一旦设备仍处于定义半径时不会再次发出通知。
答案 0 :(得分:0)
取消注册接收器,以便不再调用它。
答案 1 :(得分:0)
问题不在于删除警报。问题是你要多次注册接收器。只做一次。