ios - 当应用程序进入和退出后台时更新ios中的计时器
问题描述
我有一个应用程序,它在视图控制器中有一个计时器,从 5 分钟倒计时到 0:00。
根据 ios/Apple 应用程序暂停规则,当应用程序进入后台时,它会停止。
我如何在它进入睡眠之前抓住时间并在它回来时在几秒钟内更新它?我知道你不能长时间使用后台处理,所以要避免这种情况。
解决方案
似乎是 UserDefaults 的一个很好的用例。这可以在您的主视图控制器中完成。
ViewController.swift
let defaults = UserDefaults.standard
var timer = Timer()
var timerCount = 300
override func viewDidLoad() {
super.viewDidLoad()
let timeLeft = defaults.integer(forKey: "timerLeft1")
if timeLeft != 0 {
timerCount = timeLeft
}
startTimer()
}
func startTimer() {
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateCounter), userInfo: nil, repeats: true)
}
@objc func updateCounter() {
if timerCount > 0 {
timerCount -= 1
defaults.set(timerCount, forKey: "timerLeft1")
} else {
timerCount = 300
}
}
Apple 文档:UserDefaults
推荐阅读
- python - Jira Python 自定义字段
- regex - 删除 Wordpress URL 上的问号
- php - 如何使用 PHP 解析 Google Fit Json 字符串
- c# - 缺少小数分隔符
- android - GetCurrent 用户仅从 Firebase Google 应用返回登录用户
- google-cloud-platform - Google Cloud 的本地数据传输服务
- php - 我可以在 PHP 中使用 random_bytes(3) 生成多少个随机字符串?
- python - 使用python从网站的多个页面中抓取数据
- angular - 将 ag 网格表转换为 PDF 文件
- android - 如何用一个弯曲端画一条线