如何在用户位于特定区域时仅更新一次?

时间:2013-05-20 10:58:02

标签: iphone ios core-location

大家好我在我的项目中使用CoreLocation来了解我是否已经到达某个地区。我没有使用startMonitoringForRegion,而是在后台使用startMonitoringForSignificantLocationChange

因此,当我有位置更新时,我会检查我存储的位置,如果距离小于或等于我的设置半径,它将发送本地通知。一切正常,但让我们说用户在范围内并且他接受推送。再次当他进入后台步行时,它肯定会显示通知。如何迎合这一点,因为我收到通知后它不会再弹出,而且当我离开那个地区并重新进入时,会弹出。我当时想用布尔值来检查。

2 个答案:

答案 0 :(得分:0)

您可以在

中清除通知
- (void)applicationDidBecomeActive:(UIApplication *)application
    [[UIApplication sharedApplication] cancelAllLocalNotifications];

并重新创建一个本地通知,不包括您现在所在的地区

答案 1 :(得分:0)

我的建议是不要使用

Boolean notified = FALSE;

值,因为当应用程序终止并重新启动时它将失去其值。 为什么不使用

[[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"notified"];

因为当应用程序重新启动或重新启动时,这不会再次通知。