【问题标题】:Run function even when app minimized即使应用程序最小化也能运行功能
【发布时间】:2017-12-21 12:54:10
【问题描述】:

我想让函数每 3 小时检查一次当前日期是否

所以我尝试执行以下代码在后台运行函数:

    DispatchQueue.global().async {
        while(true){
            sleep(4)
            DispatchQueue.main.async {
                print("hello  ")
            }
        }
    }

但是当应用程序进入后台时它会停止,我的意思是当你最小化应用程序时,所以我想保持这个功能即使在最小化模式下也能运行。

我需要类似Android中service的东西,不知道有没有。

【问题讨论】:

  • 你可以使用 NSTimer 来完成这个功能
  • 你能用代码解释一下吗
  • @E-housma Mardini :iOS 不允许任何任务永远在后台运行。最好的办法是使用位置更新、过期处理程序等后台模式
  • 你的意思是我应该使用位置监听器来完成我的功能?
  • @e-housma-mardini :考虑所有可能的背景模式,找出适合你的情况并使用它。您无法在后台运行任务,例如 android 中的服务。人们经常建议使用计时器、本地通知或静默通知之类的东西。一旦您的应用程序进入后台,计时器就会停止。您安排的本地通知将不允许您运行代码,尽管您可以将代码添加为操作,但再次需要用户干预最终静默通知不适用于此类事情,因此完全合适

标签: ios swift sqlite


【解决方案1】:

我通过使用警报解决了这个问题

var newAlarm:Alarms = Alarms(context:context)

其实我是按照这个YouTube视频来完成的

https://www.youtube.com/watch?v=Yh3lLpV1k_Y

【讨论】:

    【解决方案2】:

    你可以试试这个

    让 timer = Timer.scheduledTimer(timeInterval: 7.0, target: self, selector: #selector(moveToNextPage), userInfo: nil, repeats: true)

    【讨论】:

    • 应用进入后台后会停止
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    相关资源
    最近更新 更多