iOS开发之临时后台任务


	iOS开发之临时后台任务
[编程语言教程]

在开发工作中经常会遇到需要使用后台模式的场景。而手机进入后台后一般会有三种情况:

  • 没有任何设置,进入后台后几秒钟后就会变为挂起状态。
  • 设置临时后台任务,进入后台后,程序会持续保持活跃持续三分钟左右。
  • 设置长久后台任务,理论上无限制。比如:持续播放音乐、持续定位等功能。

而本篇主要介绍一下临时后台任务的使用。临时后台任务使用场景,比如验证码倒计时功能,为了防止进入后台后计时器不继续执行。

示例代码如下:

/// 后台任务 ID
private var backgroundTaskId: UIBackgroundTaskIdentifier?
...
/// 开始后台任务
/// 1. 如果任务 id 存在,则不继续执行。
/// 2. 创建后台任务,
/// 3. 设置后台任务到期的执行代码。
@objc func startBackgroundTask() {
    if self.backgroundTaskId != nil { return }
    self.backgroundTaskId = UIApplication.shared.beginBackgroundTask { [weak self] in
        guard let `self` = self else { return }
        self.stopBackgroundTask()
    }
}
/// 结束后台任务
/// 1. 如果任务 ID 不存在,则不继续执行。
/// 2. 结束对应id 的后台任务
/// 3. 对于后台任务 id 销毁,并设置为 nil。
@objc func stopBackgroundTask() {
    guard let backgroundTaskId = self.backgroundTaskId else { return }
    UIApplication.shared.endBackgroundTask(backgroundTaskId)
    self.backgroundTaskId = UIBackgroundTaskIdentifier.invalid
    self.backgroundTaskId = nil
}

iOS开发之临时后台任务

原文地址:https://www.cnblogs.com/xueshengadu/p/ios-kai-fa-zhi-lin-shi-hou-tai-ren-wu.html

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » iOS开发之临时后台任务