大家好我在我的项目中使用CoreLocation
来了解我是否已经到达某个地区。我没有使用startMonitoringForRegion
,而是在后台使用startMonitoringForSignificantLocationChange
。
因此,当我有位置更新时,我会检查我存储的位置,如果距离小于或等于我的设置半径,它将发送本地通知。一切正常,但让我们说用户在范围内并且他接受推送。再次当他进入后台步行时,它肯定会显示通知。如何迎合这一点,因为我收到通知后它不会再弹出,而且当我离开那个地区并重新进入时,会弹出。我当时想用布尔值来检查。
答案 0 :(得分:0)
您可以在
中清除通知- (void)applicationDidBecomeActive:(UIApplication *)application
[[UIApplication sharedApplication] cancelAllLocalNotifications];
并重新创建一个本地通知,不包括您现在所在的地区
答案 1 :(得分:0)
我的建议是不要使用
Boolean notified = FALSE;
值,因为当应用程序终止并重新启动时它将失去其值。 为什么不使用
[[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"notified"];
因为当应用程序重新启动或重新启动时,这不会再次通知。