[英]how to handle while multiple push notification comes at same time in foreground of app in iOS
我已經在應用程序的委托方法中向服務器發送了請求:(UIApplication *)application didReceiveRemoteNotification:但是當多個推送通知同時出現時,應用程序由於沒有而崩潰。 的請求轉到服務器。
在委托方法中,我編寫以下代碼:
if (!downloadInboxQueue) {
downloadInboxQueue = [[NSOperationQueue alloc] init];
downloadInboxQueue.maxConcurrentOperationCount=1;
}
NSNumber *ischatnumber=[[NSNumber alloc] initWithInt:0];
operationObject=[[Operation_Inbox alloc] init];
NSInvocationOperation *operation22= [[NSInvocationOperation alloc] initWithTarget:operationObject selector:@selector(getEventFromServer:) object:ischatnumber];
[downloadInboxQueue addOperation:operation22];
operation22=nil;
NSInvocationOperation *operation2= [[NSInvocationOperation alloc] initWithTarget:operationObject selector:@selector(getEventFromServer:) object:ischatnumber];
[downloadInboxQueue addOperation:operation2];
operation2=nil;
// getEventFromServer:用於發送請求和獲取響應的方法。
請給我建議如何處理。
對於到達您設備的每個推送通知,它將被調用一次,但是如果您一次將太多通知發送到同一設備,則APNS服務器可能只會將其中一些通知發送到設備。
那不是你應該依靠的東西。 您應該對服務器進行異步調用,以免掛起/崩潰您的應用程序。
每個通知一次,但僅在應用程序正在運行時 。 如果在通知到達時應用程序處於打開狀態(即用戶正在使用該應用程序),則iOS不會顯示通知消息,您需要使用application:(UIApplication *)application didReceiveRemoteNotification
處理它。 否則(應用程序未運行),用戶可以選擇通過單擊任何推送通知來啟動應用程序。
同步HTTP往返時間可能花費太多時間。 避免在委托方法中進行同步調用。 您可以將請求排隊到持久性本地存儲中的服務器,然后在網絡連接可用時最終將它們異步發送到服務器。 看看如何通過移動后端平台 (如Parse.com或InnoQuant MOCA)解決此問題(我在InnoQuant工作)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.