【问题标题】:How to keep running iOS application (iOS 9+) in background till user changes wifi settings of iOS device如何在后台继续运行 iOS 应用程序(iOS 9+)直到用户更改 iOS 设备的 wifi 设置
【发布时间】:2016-12-05 10:59:29
【问题描述】:

在我的应用程序中,用户需要通过 iOS 设置将设备 wifi 连接到另一个 wifi。我希望我的应用程序在后台保持一段时间(例如最多 5 分钟)而不会被暂停,直到用户连接到另一个网络并返回到应用程序。

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

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

【问题讨论】:

  • 为什么你的应用会从后台移除?您的应用程序是否打开任何套接字连接?还是它正在执行任何 bakcground 任务?如果不是,那么据我所知,除非系统内存不足,否则您的应用程序不会那么容易被杀死。我不是很确定,如果我错了,请纠正我。

标签: ios background-process


【解决方案1】:

移至后台的应用程序应将自己置于 尽可能快地进入静止状态,以便它们可以暂停 由系统。如果您的应用程序正在执行一项任务并且需要 完成该任务的额外时间很少,它可以调用 beginBackgroundTaskWithName:expirationHandler: 或 UIApplication 的beginBackgroundTaskWithExpirationHandler: 方法 对象请求一些额外的执行时间。调用任何一个 这些方法会暂时延迟您的应用程序的暂停,给它 一点额外的时间来完成它的工作。完成这项工作后, 您的应用必须调用endBackgroundTask: 方法才能让系统 知道已经完成,可以暂停了。

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

【讨论】:

    【解决方案2】:

    阅读iOS Backgrounding with Tasks 。

    应用程序在后台运行的时间是 10 分钟,即 600 秒。

    您可以使用代码知道剩余时间

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

    因为您的需要只是打开 wifi - 我认为可能需要不到 10 分钟。

    希望我的回答清晰且有用。

    【讨论】:

      猜你喜欢
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多