我正在使用Beacon设备进行测试。方案如下。 当接收器进入基于纬度和频率的位置时,我正在抛出本地通知。我手动设置的经度范围。这工作正常,我正在清除didFinishLaunchingWithOptions上的这个通知。当我进入下一个最近的区域时,我正在收到通知,点击它后我就能看到一个视图。但是当我从应用程序中退出时,本地通知不会被清除。可能是什么问题?
我在两个不同的地区使用两种不同的方法。 第一个是
-(void) didEnterLocation:(SLMLocation*)location
{
// throwing a local notification
}
上述方法的通知已在
中清除- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] cancelAllLocalNotifications];
}
第二种方法如下:这是针对第二区域的
- (void) didEnterNewClosestRegion :(SLMBLERegion*) region
{
// throwing local notifications here & notifications are visible
}
现在在第二种方法中,我无法清除本地通知。非常感谢您的帮助。
答案 0 :(得分:1)
这是因为 didFinishLaunchingWithOptions 方法仅在应用有效期内被调用一次,因此有可能它已在后台运行,因此通知将不会被清除。我建议你将取消代码移到 applicationDidBecomeActive 。
cancelAllLocalNotifications,取消所有已安排的本地通知的发送,但不会清除锁定屏幕或通知中心已显示的通知。
答案 1 :(得分:1)
尝试这可能会有所帮助..
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
[[UIApplication sharedApplication] cancelAllLocalNotifications];
}
谢谢