当我在短时间内收到一堆推送通知时,如何防止应用程序冻结。 (我正在通过从节点服务器的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万条消息,并且仍然会响应,消息会延迟几分钟,但应用程序会正常工作。