Swift:当应用程序被杀死时运行特定代码?

时间:2017-09-21 10:16:20

标签: ios swift ios-frameworks

我有一个框架,可根据请求将ViewController返回给我的应用程序。 此视图控制器包含一段QR代码,该代码在一段时间后会发生变化 - 比如说3天。

我想在3天后调用框架中包含的方法,以便即使用户没有主动使用应用程序,也可以随时使用更改/更新的QR。当用户打开应用程序时 - 更新的QR就在那里!

为此,我在框架内的ViewController中使用了以下内容 - (来自tutorial link

//MARK:- Add Timer to run QR Logic after 5 seconds
            let date = Date().addingTimeInterval(5)

            let timer = Timer(fireAt: date, interval: 0, target: self, selector: #selector(QrUIViewController.performQrFetchLogic), userInfo: nil, repeats: true)

            RunLoop.main.add(timer, forMode: RunLoopMode.commonModes)

这段代码在app处于活动状态/后台时非常有效。它是否可能,以及即使应用程序被杀,如何实现这一目标?

PS:我读过Jobscheduler,AlarmManager适用于Android - 在iOS中有类似的东西吗?

1 个答案:

答案 0 :(得分:1)

实现此目标的最佳方法可能是使用预定的Local Notification

您在将来的某个时间安排本地通知,然后对此作出反应。这种情况既适用于应用程序处于活动状态,也处于活动状态或处于非活动状态。

请记住,如果用户杀死您的应用,则不会触发通知。