Ios7 ios 7:DidReceiveEmotentification fetchcompletionhandler在应用程序处于后台进行夜间测试时未被调用

Ios7 ios 7:DidReceiveEmotentification fetchcompletionhandler在应用程序处于后台进行夜间测试时未被调用,ios7,Ios7,我使用VoIP和远程通知作为后台模式 我让我的应用程序在后台闲置,以便过夜测试 我在ApplicationIdentinterBackground中编写了以下代码 - (void)applicationDidEnterBackground:(UIApplication *)application { } 在后台保持应用程序空闲1天后,我发现日志中打印了“voip保持活动超时执行…” 这表明我的应用程序处于活动状态 但当我向我的应用程序发送推送通知时,“DidReceiveEmotent

我使用VoIP和远程通知作为后台模式

  • 我让我的应用程序在后台闲置,以便过夜测试

  • 我在ApplicationIdentinterBackground中编写了以下代码

        - (void)applicationDidEnterBackground:(UIApplication *)application
    
    {

    }

  • 在后台保持应用程序空闲1天后,我发现日志中打印了“voip保持活动超时执行…”

  • 这表明我的应用程序处于活动状态

  • 但当我向我的应用程序发送推送通知时,“DidReceiveEmotentification fetchcompletionhandler”方法不会被调用

  • 这与苹果公司的声明相矛盾“与仅在应用程序运行时调用的application:DidReceiveMemoteNotification:method不同,系统调用DidReceiveMemoteNotification fetchcompletionhandler方法,而不管应用程序的状态如何。如果您的应用程序被挂起或未运行,系统将唤醒或启动您的应用程序,并在调用该方法之前将其置于后台运行状态。”


  • 有人能告诉我为什么会发生这种情况吗?

    确保您的APNS有效负载具有“可用内容”

    content available(内容可用)-number(数字)-将此键的值设置为1,以指示新内容可用。这用于支持报摊应用程序和后台内容下载


    请有人回复。我收到了同样的问题:(从过去两天开始,我的有效载荷包括“可用内容”。
    [[UIApplication sharedApplication] setKeepAliveTimeout:600 handler:^{
        NSString *message = @"voip keep alive timeout executed....";
        NSLog(@"%@",message);
         [Logger addEntry:CAT_ML_CORE andSubCategory:SUBCAT_DEBUG andMessage:message];
    }];