2013-04-01 2 views
2

Привет Я разрабатываю небольшое приложение для Android, в котором я использую оповещение о близости. Так что все работает нормально. Теперь то, что я хочу сделать, как только произойдет запуск события, я хочу удалить это предупреждение. Как это сделать? могу ли я сделать это в широковещательном приемнике или где-нибудь еще? Мой код выглядит.Удалить предупреждение о близости внутри широковещательного приемника android

// in abc class 
PendingIntent proximityIntent = PendingIntent.getBroadcast(
        context, 0, intent, 
        PendingIntent.FLAG_CANCEL_CURRENT); 

     locationManager.addProximityAlert(
       latitude, 
       longitude, 
       POINT_RADIUS, 
       PROX_ALERT_EXPIRATION, 
       proximityIntent    ); 

// this is broadcast receiver 
public void onReceive(Context context, Intent intent) { 

     String key = LocationManager.KEY_PROXIMITY_ENTERING; 

     Boolean entering = intent.getBooleanExtra(key, false); 

     if (entering) 
     { 
      // here I want to stop this alert... ANy solution how to stop this   
      } 
     else 
     { 
     } 
} 

как это сделать? Нужна помощь. Спасибо.

+0

похоже, что вы хотите отобразить предупреждение и отменить его через 1-2 секунды? – Lucifer

+0

нет нет подобный. что я делаю, я использую время истечения как -1, что приводит к непрерывному использованию gps. поэтому я хочу удалить это предупреждение, чтобы уменьшить потребление батареи. Как только пользователь узнает, что он входит в это место, тогда не нужно правильно его отслеживать? Поэтому я просто хочу удалить это предупреждение. – nilkash

ответ

0

Используйте LocationManager. removeProximityAlert (PendingIntent). Просто передайте это в намерении, которое вы передали в addProximityAlert. Если вы не сохранили это сейчас, вам придется сохранить его в переменной в вашей деятельности/службе.

+0

Благодарим вас за ответ. Нужно сохранить это мое ожидающее намерения. Я попробовал ваше решение и удалил мое предупреждение. Но я попробовал это в своей деятельности. Моя проблема заключается в том, как я могу сообщить свою активность о том, что введенное событие вызвано; поэтому по этой причине я попытался удалить его в широковещательном приемнике. Две вещи, если я попытался удалить оповещение внутри приемника, тогда мне нужно иметь в виду намерение со мной, а во-вторых, если попробовать его в активности, тогда мне нужно, когда введенное событие запускается. Итак, как я могу активировать это .. любое решение – nilkash

0

в моем опыте ожидания Намерения имеет другой флаг:

PendingIntent proximityIntent = PendingIntent 
              .getBroadcast(
                NotificationService.this, 
                0, 
                intent, 
                PendingIntent.FLAG_ONE_SHOT); 

и когда извещать становится видно, отбрасываются или использовать я получил этот код:

((NotificationManager) getSystemService(NOTIFICATION_SERVICE)) 
        .cancel(NOTIFICATION_ID); 

где ID уведомления будет 0 в вашем коде. Первым вариантом является остановка предупреждения, во-вторых, его удаление из меню уведомлений.