【问题标题】:UILocalNotification on repeat every one secondUILocalNotification 每隔一秒重复一次
【发布时间】:2014-01-15 05:47:12
【问题描述】:

当我的iBeacon 应用程序在后台模式下运行时,我已经能够让我的应用程序向用户推送本地通知,但由于某种原因,此通知每隔一秒就会重复一次,

UILocalNotification *notice = [[UILocalNotification alloc] init];

         for (int i=0; i<=1; i++)
          {
            notice.alertBody = @"We just found some great deals in this location!";
            notice.alertAction = @"Open";

       [[UIApplication sharedApplication] scheduleLocalNotification:notice];


         notice.fireDate = [[NSDate date] dateByAddingTimeInterval:0.2];
        }

我只想在用户进入该区域时仅向用户显示一次此通知。

【问题讨论】:

  • for (int i=0; i&lt;=1; i++)???真的吗?
  • 你没有说这段代码是如何与你的 iBeacon 回调联系在一起的。如果你在测距回调中有这个,那么它将重复显示。如果你的监控回调中有它,它不应该无休止地显示。
  • 很好的答案,谢谢 DavidgYoung。我在测距回调中调用了它,因为我在逻辑语句中设置了它。

标签: ios uilocalnotification ibeacon


【解决方案1】:

iOS 每秒测量一次,所以听起来您的代码在 didRangeBeacons 方法中。您应该将 UILocalNotification 代码移至 didEnterRegion 方法。

【讨论】:

    【解决方案2】:

    使用presentLocalNotificationNow。当用户进入该区域时,它使通知只显示一次。

    [[UIApplication sharedApplication] presentLocalNotificationNow:notice];
    

    【讨论】:

      【解决方案3】:

      根据您的代码,您似乎正在安排两个本地通知,因为您的 for 循环应该运行两次。这意味着您没有看到重复相同的通知,而是几乎同时触发了两个不同的通知。我建议你重新审视一下你的逻辑。

      UILocalNotification 对象的repeatInterval 属性默认设置为 0,即不重复。因此,设置repeatInterval 不是这种情况,因为您希望它不重复。

      【讨论】:

        【解决方案4】:

        试试这个。 . .

        UILocalNotification *notice = [[UILocalNotification alloc] init];
        notice.alertBody = @"We just found some great deals in this location!";
        notice.alertAction = @"Open";
        notice.fireDate = [[NSDate date] dateByAddingTimeInterval:0.2];
        [[UIApplication sharedApplication] scheduleLocalNotification:notice];
        

        【讨论】:

          猜你喜欢
          • 2016-03-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-22
          • 1970-01-01
          相关资源
          最近更新 更多