如何使用通知中心来计算事件数量

时间:2013-05-07 23:27:07

标签: iphone background notifications

有没有办法获取通知被唤起的次数? 通知必须在后台工作,如达尔文通知中心,但不幸的是,此选项忽略最后一个条目“CFNotificationSuspensionBehaviorHold”。 有人可以帮忙吗? 谢谢

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

编辑:

我很抱歉没有用enaugh详细解释我的问题,但是当我得到第一个答案时我意识到了这一点。 假设我的应用程序已被使用,然后按下主页按钮。所以它将进入后台。如果在iPhone上发生了“事情发生”的事件(即使我的应用程序在后台运行),通知也会保存此信息。但只有ONCE,无论我的应用程序在后台运行的事件发生的频率如何。而且我想知道在我的应用程序在后台运行期间发生的“发生了什么事件”的确切事件数。我希望我现在能说清楚。

2 个答案:

答案 0 :(得分:0)

试试这个:

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

对于例如。

<。>文件中的

    int intCount;

.m文件

     ViewDidLoad method
           intCount=0;

在你的方法中

    intCount++;

你可以像

一样打印
       NSLog(@"totalInvoke=%d",intCount);

答案 1 :(得分:0)

当使用Darwin Notification Center“CFNotificationCenterGetDarwinNotifyCenter()”时,调用CFNotificationCenterAddObserver()时会忽略'object'和'suspensionBehavior'参数,所以在你的代码中CFNotificationSuspensionBehaviorHold没有效果,建议在被忽略的参数中传递0或NULL为了确保未来的兼容性,希望这会有所帮助。