如何在后台运行iOS应用程序(iOS 9+)直到用户更改iOS设备的WiFi设置

如何在后台运行iOS应用程序(iOS 9+)直到用户更改iOS设备的WiFi设置

问题描述:

在我的应用程序中,用户需要通过iOS设置将设备WiFi连接到另一个WiFi。我希望我的应用程序在一段时间内保持在后台(如最长5分钟)而不会暂停,直到用户连接到另一个网络并返回到应用程序。如何在后台运行iOS应用程序(iOS 9+)直到用户更改iOS设备的WiFi设置

我观察到我的应用程序在切换设备wifi期间从后台移除。该应用程序不会在后台保持活动状态。

如何让iOS应用程序(iOS 9+)在后台保持一段时间,即5分钟?

+0

为什么你的应用程序将从背景中删除?您的应用是否打开任何套接字连接?还是它执行任何bakcground任务?如果没有,那么据我所知,除非系统内存不足,否则您的应用程序不会轻易被杀死。我不太确定,如果我错了,请纠正我。 –

应用移动到背景,预计把自己变成一个 静止状态尽快使得它们可以悬浮 由系统。如果您的应用程序处于任务的中间并且需要额外的时间才能完成该任务,则可以调用对象的 beginBackgroundTaskWithName:expirationHandler:beginBackgroundTaskWithExpirationHandler:方法来请求一些额外的执行时间。调用 之一这些方法会暂时延迟您的应用程序的暂停,并为其完成其工作稍微多花一点时间。完成该工作后,您的应用程序必须调用endBackgroundTask:方法,让系统 知道它已完成并可以暂停。

(来源:https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

iOS Backgrounding with Tasks

时间的应用程序将在后台的10分钟,这是600秒。

您可以使用代码

NSLog(@"Time Remaining: %f", [[UIApplication sharedApplication] backgroundTimeRemaining]); 

因为你需要的仅仅是打开wifi的导通可能需要不到10分钟,我想知道剩余时间。

希望我的回答很清楚并且有帮助。