在我的应用程序中,我使用每日静默推送来触发我的应用程序内的一些计算,并根据计算结果触发本地通知。
例如:每日目标。
一旦静默通知到达我的应用程序,我会触发一个后台方法来计算用户数据并比较他/她的数据是否达到目标,如果是,我会触发本地通知,以便用户可以打开应用程序并检查。
它无法始终如一地工作,有时我得到它,有时却没有。当我调试时,我看到的是执行在两者之间暂停并且只有当用户再次打开应用程序或我再次触发静默推送时才会恢复执行。不知道为什么后台执行(计算)会暂停,如果我触发推送或者我手动尝试打开应用程序,我可以看到断点出现回来,它从暂停的地方继续。
我想知道是不是因为时间限制?
更新:
我正在使用 UrbanAirshipSDK,他们有一些处理程序被覆盖,我正在使用下面的方法来处理通知。这是写在 appdelegate 中的,当我在后台收到通知时会调用它。
/**
* Called when a push notification is received while the app is running in the background
* for applications with the "remote-notification" background mode.
* Overridden by receivedBackgroundNotification:fetchCompletionHandler.
*
* @param notification The notification dictionary.
*/
- (void)receivedBackgroundNotification:(NSDictionary *)notification;
我首先检查有效负载中的可用内容并将其视为静默并进行计算。这间歇性地工作得很好,但不是始终如一。我正在接近发布日期,我真的很担心。