【问题标题】:How to use Notification Center which counts number of events如何使用计算事件数量的通知中心
【发布时间】:2013-05-07 23:27:07
【问题描述】:

有没有办法获取通知被触发的次数? 通知必须在后台工作,就像达尔文通知中心一样,但不幸的是,这个选项忽略了最后一个条目“CFNotificationSuspensionBehaviorHold”。 任何人都可以帮忙吗? 谢谢

CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), //center
                                NULL, // observer
                                someCallBack, // callback
                                CFSTR("something happens"), // event name
                                NULL, // object
                                CFNotificationSuspensionBehaviorHold);

编辑:

我很抱歉没有用足够的细节解释我的问题,但是当我得到第一个答案时我意识到了这一点。 假设使用我的应用程序,然后按下主页按钮。所以它会进入后台。如果在 iphone 上发生“某事发生”事件(即使我的应用程序在后台运行),通知也会保存此信息。但只有一次,无论我的应用程序期间发生的事件多久在后台运行。而且我想知道在我的应用程序在后台运行期间发生的“某事发生”事件的确切数量。我希望我现在可以说清楚。

【问题讨论】:

    标签: iphone background notifications


    【解决方案1】:

    试试这个:

    创建一个 int 类型的全局实例。在 ViewDidLoad 中将其定义为 0(零),并在调用该方法时增加 1。它可以计算总数。调用。

    例如。

    在.h文件中

        int intCount;
    

    .m 文件

         ViewDidLoad method
               intCount=0;
    

    在你的方法中

        intCount++;
    

    你可以像这样打印

           NSLog(@"totalInvoke=%d",intCount);
    

    【讨论】:

    • 很抱歉没有提出这个问题来浪费你的时间...我已经编辑了它
    【解决方案2】:

    当使用 Darwin 通知中心 "CFNotificationCenterGetDarwinNotifyCenter()" 时,调用 CFNotificationCenterAddObserver() 时会忽略 'object' 和 'suspensionBehavior' 参数,因此在您的代码中 CFNotificationSuspensionBehaviorHold 无效,建议在忽略的参数中传递 0 或 NULL为确保未来的兼容性,希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      相关资源
      最近更新 更多