如何处理在多个推送通知在iOS应用的前景来在同一时间(how to handle while mul

2019-10-18 04:41发布

我在申请的委托方法发送请求到服务器:(UIApplication的*)应用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:用于发送请求和响应获取方法..........

请建议我如何处理。

  1. 当多个推送通知来了多少次的委托方法叫什么?
  2. 多少时间需要发送HTTP请求和响应拿到之间(最大时间)?

Answer 1:

  1. 它会一次到达你的设备的每个推送通知被调用,但如果你送太多通知,到同一个设备一次,它有可能是APNS服务器将只发送他们中的一些设备。

  2. 这不是你应该依靠。 你应该做一个异步调用到你的服务器,为了不挂/崩溃的应用程序。



Answer 2:

  1. 每一次通知,但只有当应用程序正在运行 。 如果应用程序是开放的(即,用户在使用应用程序),而通知到达,iOS的犯规显示通知消息,则需要使用处理它application:(UIApplication *)application didReceiveRemoteNotification 。 否则(应用程序没有运行),用户可以通过单击任何推送通知,启动应用程序。

  2. 同步HTTP往返时间可能会花费太多时间。 避免在委托方法同步调用。 你可以排队请求到服务器在持久的本地存储,并最终异步发送他们到服务器时,网络连接可用。 看看这是如何移动后端平台如Parse.com或InnoQuant MOCA(我在InnoQuant工作)解决。



文章来源: how to handle while multiple push notification comes at same time in foreground of app in iOS