0

大家好,我CoreLocation在项目中使用的每个人都知道我是否到达了某个地区。我没有使用startMonitoringForRegion,而是startMonitoringForSignificantLocationChange在后台使用。

因此,当我有位置更新时,我会检查我存储的位置,如果距离小于或等于我设置的半径,它将发送本地通知。除了假设用户在范围内并且他收到推送之外,一切正常。再次,当他在后台走一点时,它肯定会显示通知。如何解决这个问题,即因为我收到通知,它不会再次弹出,而且当我离开该区域并重新进入时,应该会弹出。我正在考虑使用布尔值进行检查。

4

2 回答 2

0

您可以清除通知

- (void)applicationDidBecomeActive:(UIApplication *)application
    [[UIApplication sharedApplication] cancelAllLocalNotifications];

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

于 2013-05-20T11:06:14.117 回答
0

我的建议是不要使用

Boolean notified = FALSE;

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

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

因为这不会在应用程序重新启动或重新启动时一次又一次地通知。

于 2013-05-20T11:59:41.343 回答