SwiftUI中的计时器在后台针对模拟器运行,但在真实手机上不起作用

时间:2020-06-09 01:14:00

标签: timer background swiftui

我在swiftui上制作了一个计时器应用程序,当我在模拟器上运行我的应用程序时,计时器可以正常工作并在后台运行。当我在手机上对其进行测试时,计时器会在应用程序进入后台时停止计时。另外,当我的应用在手机上进入后台时,也会显示此消息:

无法结束BackgroundTask:不存在标识符为1(0x1)的后台任务,或者它可能已经结束。中断UIApplicationEndBackgroundTaskError()进行调试。

1 个答案:

答案 0 :(得分:0)

也许您可以尝试这种方式来运行某些东西并在后台线程上更改UI内容:

DispatchQueue.global(qos: .background).async {
    print("Background Thread is running")

    DispatchQueue.main.async {
        print("You can change UI stuff here.")
        label.text = "Done." //UIKit
        self.myLabelTxt = "Done." //SwiftUI's string state variable 
    }
}

希望这会有所帮助!