iOS FCM推送通知阻止UI线程

时间:2018-07-04 06:46:58

标签: ios firebase firebase-cloud-messaging

当我在短时间内收到一堆推送通知时,如何防止应用程序冻结。 (我正在通过从节点服务器的for循环中发送1000条消息来对此进行测试)。应用程序冻结,直到处理完所有消息为止。

它们都是数据通知,没有消息部分。

extension AppDelegate: MessagingDelegate {
    func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
        print("Received Firebase token: \(fcmToken)")
    }

    func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
        DispatchQueue.global(qos: .background).async {
            print("Application recevied remote message.")
            let appData = remoteMessage.appData
            self.handleRemoteNotification(appData)
        }
    }

}

在UI线程上调用didReceive消息,即使我不做任何事情,它仍然会阻塞UI线程。

Android处理得很好,我可以发送1万条消息,并且仍然会响应,消息会延迟几分钟,但应用程序会正常工作。

0 个答案:

没有答案