当前位置: 首页 > 知识库问答 >
问题:

如果我的应用被用户强制退出,iOS是否会在后台启动它?

宫俊远
2023-03-14

我正在使用推送通知上的Content-Available标志触发后台提取。启用了FetchRemote-NotificationUIBackgroundModes

下面是我在AppDelegate.m中使用的实现:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"Remote Notification Recieved");
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.alertBody =  @"Looks like i got a notification - fetch thingy";
    [application presentLocalNotificationNow:notification];
    completionHandler(UIBackgroundFetchResultNewData);

}

当应用程序在后台运行时,它工作得很好。(收到通知后,应用程序触发了“好像我收到通知了”本地通知,上面的代码应该这样做)。

共有1个答案

陈飞语
2023-03-14

更新2:

您可以使用iOS8中引入的新的PushKit框架来实现这一点。尽管PushKit用于VoIP。所以你的使用应该是与VoIP相关的,否则有应用拒绝的风险。(见此答案)。

UDPDATE1:

另外,请记住,如果你从应用切换器中删除应用程序(即,向上滑动以删除应用程序),那么操作系统将永远不会重新启动应用程序,无论推送通知或后台提取。在这种情况下,用户必须手动重新启动应用程序一次,然后从那一点开始,后台活动将被调用。-普马科斯

那篇文章是苹果公司的一名员工写的,所以我认为我可以相信这些信息是正确的。

所以当应用程序从应用程序切换器中被删除(通过向上滑动)时,该应用程序将永远不会被启动,即使是预定的后台获取。

 类似资料:
  • 问题内容: 我正在使用MySQL Connector / .NET,它的所有提供程序都带有FormsAuthentication。 我需要所有用户退出。该方法无法正常工作。 如何注销所有站点用户? 问题答案: 正如乔建议的那样,您可以编写一个HttpModule来使给定DateTime之前存在的任何cookie无效。如果将其放在配置文件中,则可以在必要时添加/删除它。例如, Web.config:

  • 我给了这个应用程序VOIP和音频背景功能。我已设置-(void)设备:(TCDevice*)设备DidReceiveIncomingConnection:(TCDeconnection*)连接 若要激发本地通知,请执行以下操作。麻烦的是,只有在应用程序运行的情况下,这种方法才能奏效。 如果我重新启动手机或启动应用程序,然后将应用程序发送到后台,就会出现来电还没有被收到的情况,当我拨打它的时候,我会

  • 所以在开始这个问题之前,这里是我对码头工人的理解。 Docker有3个组件 图像 容器 DockerFile 现在,我不想采用的方法,在这里指定创建容器时要执行的步骤。 我想在Linux上安装一些基本的实体,如MongoDb、Redis等,并在它们上运行我的服务器。 于是我就这样开始了: 它返回给我容器的id。 但每次它都在说: 请帮助我做错的地方,这可能是一个新手的问题,但我被困在这里,请不要反

  • 在使用Appium的iOS自动化中,有没有办法执行以下过程? 按Home键。 将应用放在后台。 打开其他应用程序(比如Gmail)- 我试过这些: 但它只是退出我正在自动运行的应用程序(就像),然后当我尝试重新启动时-

  • 嘿,伙计们,我目前正在为我的最终项目开发一个应用程序,这个概念是一个保持联系的应用程序,但有用户登录和注册。当用户输入他们的凭据并按下登录按钮时,它会启动一个意图移动到另一个页面,在此 Intent 上,我用 .finish() 方法结束它,这样用户就无法返回,但是当执行该操作时,用户意外按下设备上的物理后退按钮,应用程序将关闭,如果您尝试通过执行多任务物理按钮再次打开它在设备上,你选择它,它从头

  • 我们正在开发一个使用pjsip进行VoIP通话的iOS应用程序。当应用程序在前台时,或者如果我们在前台开始通话,然后将应用程序放在后台,一切都很好。 但当应用程序处于后台时,当从BLE设备建立特定连接时,我们需要启动VoIP呼叫。 因此,基本上BLE设备与应用程序对话,并要求它开始通话。这不管用。 血糖中的音频已启用。 这在iOS上可行吗?我在苹果的文档中找不到任何关于这种情况的参考。 我们正在使