CloudKit:当应用程序暂停时,CKOperations 不运行
Posted
技术标签:
【中文标题】CloudKit:当应用程序暂停时,CKOperations 不运行【英文标题】:CloudKit: CKOperations don't run when app is suspended 【发布时间】:2016-03-08 04:41:25 【问题描述】:我正在收听来自 CloudKit 公共数据库的 CKSubscriptions 的远程通知。我想处理在应用程序暂停时收到通知的情况......我通过使用带有“等待启动可执行文件”选项的 Xcode 运行应用程序在我的设备上模拟这种情况。我注意到application:didReceiveRemoteNotification:fetchCompletionHandler
委托方法被正确调用,并且我在此之后排队了CKFetchNotificationChangesOperation
操作,但该操作从未运行。我没有收到任何 notificationChangedBlock
或 fetchNotificationChangesCompletionBlock
回调。如果应用程序在前台运行并收到通知,则同样可以正常工作。
我已尝试将 CKOperation 和操作队列上的 QoS 设置为 NSQualityOfServiceUserInteractive
,但这似乎也无济于事。
我也在 WiFi 上尝试这个,iPhone 以 100% 的电量插入我的电脑。
为了让 CKOperations 在后台运行,我还有什么需要研究的吗?
【问题讨论】:
如果设备实际上没有连接到调试器,似乎可以正常工作 【参考方案1】:我猜你调用 fetch 完成处理程序太快了,这会暂停应用程序。您需要在所有操作结束时调用它。
【讨论】:
以上是关于CloudKit:当应用程序暂停时,CKOperations 不运行的主要内容,如果未能解决你的问题,请参考以下文章
当用户未登录 iCloud 时,我可以使用 CloudKit 在我的应用程序中使用订阅吗?