首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swift3的锁屏上,NSTimer运行时间不超过3分钟?

在Swift3的锁屏上,NSTimer运行时间不超过3分钟?
EN

Stack Overflow用户
提问于 2017-10-02 14:25:42
回答 1查看 436关注 0票数 0

我正在开发一个冥想应用程序。在这个应用程序中,我给用户提供了一个选项,让用户选择最多24小时的时间并进行冥想。定时器在锁定屏幕上正常工作3分钟,但在3分钟后停止。

代码如下:

代码语言:javascript
复制
     var backgroundTaskIdentifier: UIBackgroundTaskIdentifier?

     var timer : Timer?
     var counter : Int!

    override func viewDidLoad() {
    super.viewDidLoad()
     backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask(expirationHandler: {
        UIApplication.shared.endBackgroundTask(self.backgroundTaskIdentifier!)
    })
     timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(MainPlayerMindCultivationController.updateTimer), userInfo: nil, repeats: true)

    }

 func updateTimer () {
    counter = counter - 1
    let hours = Int(counter) / 3600
    let minutes = Int(counter) / 60 % 60
    let seconds = Int(counter) % 60

    timerLabel.fadeTransition(0.4)
    timerLabel.text = String(format: "%02i:%02i:%02i",hours,minutes,seconds)

    print("mincounter\(counter)")

    }

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-10-02 14:59:05

计时器在锁定屏幕上正常工作3分钟,但在3分钟后停止。

这就是iOS的工作方式。你应该在你的应用程序中断时使你自己的计时器失效,然后在你的应用程序重新开始运行时重新启动它们。但是,如果你不自己停止它们,当应用程序挂起时,你的运行计时器将被操作系统失效。

在这个应用程序中,我给用户提供了一个选项,让用户选择最多24小时的时间并进行冥想。

对于这类事情,本地通知将是一个更好的工具。您可以将通知安排在将来的某个时间,操作系统将负责将通知传递给用户。当通知送达时,用户将看到您的消息,并可以选择切换到您的应用程序,即使该应用程序当前根本没有运行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46520432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档