即使应用程序不在后台运行,如何让 iOS 应用程序执行一些代码?

Posted

技术标签:

【中文标题】即使应用程序不在后台运行,如何让 iOS 应用程序执行一些代码?【英文标题】:How to make an iOS app execute some code even when app is not running in the background? 【发布时间】:2017-02-15 05:46:08 【问题描述】:

android 上,服务使我们可以灵活地继续运行代码,即使应用程序未在后台运行,因为即使启动服务的应用程序终止,服务也会继续执行。

我希望在 ios 上做同样的事情。我知道backgroundFetch,但它仅在应用程序在后台运行时才有效。

【问题讨论】:

Apple 不提供这样的功能,您只能在应用程序为后台时调用服务。当您的应用程序未运行或终止时,您无法执行任何操作来运行服务 你确定。没有任何替代品。可能是一些第三方代码。 我确信当您的应用程序未运行或终止时,不会有任何东西可以帮助您运行服务。看我的问题和网友***.com/questions/39720213/… 【参考方案1】:

当应用程序在 iOS 中终止时,您无法运行任何代码,如 documentation 中给出的。

您可以通过以下方式在应用程序终止之前做一些事情。

func applicationWillTerminate(_ application: UIApplication) 
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.


或通过在应用中的任何位置注册通知

NotificationCenter.default.addObserver(forName: NSNotification.Name.UIApplicationWillTerminate, object: nil, queue: OperationQueue.main)  (notification) in


【讨论】:

以上是关于即使应用程序不在后台运行,如何让 iOS 应用程序执行一些代码?的主要内容,如果未能解决你的问题,请参考以下文章

你如何经常在后台运行?

iOS 应用程序不在后台运行 = YES - 我如何检查用户何时退出应用程序

即使应用程序处于挂起状态,如何在 ios 中运行后台服务

即使应用程序在后台运行,如何使用 swift 在 ios 中获取位置更新

如何让指定的程序不在任务栏显示?但是仍然能在后台运行。windowsAPI能做吗?

即使应用程序在后台运行或手机被锁定在 Windows Phone 中,如何让计时器运行