您好我必须创建一个应用程序,用户可以在其中标记位置,以便有一个对应于该位置的警报。我从广播接收器注册的BroadCast Receiver开始,每件事情都正常工作但是对于一个位置Pending Intent再次开火和本文所述的同样问题
并且有许多查询很多人都面临同样的问题like this one
在第一篇文章中有一个解决方案,当我在activty onCreate方法中注册广播接收器时,只有当该活动处于焦点时我才会工作,当我按下然后注册时自动取消注册。我希望广播接收器一直工作。实际上,当我点击保存时会出现警报,然后为该位置保存一个接近警报 这是用于注册与我的应用相关的接近警报的相关代码
String s=System.currentTimeMillis()+"";
Intent intent = new Intent(PROX_ALERT_INTENT+s);
intent.putExtra("longitude", longitude);
intent.putExtra("latitude", latitude);
PendingIntent proximityIntent = PendingIntent.getBroadcast(getApplicationContext(), i, intent, PendingIntent.FLAG_UPDATE_CURRENT);
locationManager.addProximityAlert(
latitude, // the latitude of the central point of the alert region
longitude, // the longitude of the central point of the alert region
1000, // the radius of the central point of the alert region, in meters
-1, // time for this proximity alert, in milliseconds, or -1 to indicate no expiration
proximityIntent // will be used to generate an Intent to fire when entry to or exit from the alert region is detected
);
IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT+s);
registerReceiver(new ProximityAlertReceiver(), filter);
我正在创建一个意图,动作字符串包含一个常量和一个时间戳。然后我正在注册一个具有相同常量+ time_stamp的广播接收器。警报工作正常但仅在Activity处于前台时工作,否则警报不起作用。请告诉我们如何添加接近警报,以便它只会触发一次或任何替代解决方案来完成此任务。
答案 0 :(得分:0)
因为ProximityAlert更多次触发意图并且我在一个带有注释的Activty中显示警报所以我使用了Activity的NewIntent方法,所以不会超过一个应用程序生成的实例。