后台保活

作者: 太平洋_cfd2 | 来源:发表于2021-11-15 11:16 被阅读0次
        /// 后台任务
        var backgroundTask: UIBackgroundTaskIdentifier?
    
        func applicationDidEnterBackground(_ application: UIApplication) {
            
            /// 如果已存在后台任务,先将其设为完成
            if let task = backgroundTask {
                application.endBackgroundTask(task)
                backgroundTask = UIBackgroundTaskIdentifier.invalid
            }
            /// 注册后台任务
            backgroundTask = application.beginBackgroundTask(expirationHandler: {
                /// 如果没有调用endBackgroundTask,时间耗尽时应用程序将被终止
                if let task = self.backgroundTask {
                    application.endBackgroundTask(task)
                    self.backgroundTask = UIBackgroundTaskIdentifier.invalid
                }
            })
        }
    

    设置后,切后台会弹窗,是否选择一直获取定位,但是使用期间,主要看用户如何选择。

    1. 以上是非音乐、定位等app的保活方式,最长只有10分钟
      https://lbs.amap.com/demo/sdk/service-location#ios
      以上是谷歌持续定位保活方式
            private var locationManager = CLLocationManager()
            locationManager.delegate = self
            locationManager.requestAlwaysAuthorization()
            locationManager.desiredAccuracy = kCLLocationAccuracyBest
            locationManager.distanceFilter = kCLDistanceFilterNone
            // 司机端需要持续定位上报
            locationManager.allowsBackgroundLocationUpdates = true
            // 是否允许中断定位功能
            locationManager.pausesLocationUpdatesAutomatically = false
            
            locationManager.startUpdatingLocation()
    

    以上是系统持续定位保活方式,可参考谷歌实现方式(谷歌也是同系统实现)

    1. 后台持续定位,审核需要注意的点,以及参数详细解释
      https://x-mie.com/2018/12/ios-background-location/
      https://www.jianshu.com/p/e71c7fb61ba0

    相关文章

      网友评论

        本文标题:后台保活

        本文链接:https://www.haomeiwen.com/subject/utxqtrtx.html