首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 12更积极地关闭我的应用程序?

iOS 12更积极地关闭我的应用程序?
EN

Stack Overflow用户
提问于 2019-02-08 07:22:28
回答 1查看 97关注 0票数 0

因此,我为滑雪/单板滑雪写了一个统计跟踪器,上个赛季工作得很好。这一季,即使我被设置为接收后台位置更新,我也很难让应用程序存活下来。

以下是一些在后台运行的计时器任务:

-Parsing数组/字典和执行计算

-Receiving和将数据发送到firebase

到CoreData的-Recording数据

只要我有细胞信号,东西就有更好的存活机会,但不能保证。

iOS 12 vs 11有什么变化吗?

下面是我开始位置更新的代码:

代码语言:javascript
复制
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.activityType = .other
        locationManager.allowsBackgroundLocationUpdates = true


        locationManager.pausesLocationUpdatesAutomatically = false
        locationManager.showsBackgroundLocationIndicator = true

        locationManager.startUpdatingLocation()

我已经尝试过locationManagerDidPauseLocationUpdates在iOS试图杀死它时重新启动位置更新,更改活动类型,更改准确性,似乎什么都不起作用,尽管将活动类型更改为other确实延长了应用程序死亡前的时间,所以我以为locationManagerDidPauseLocationUpdates会重启它,但没有骰子。

有没有其他关于在录制的同时让东西保持活力的想法?

编辑:我也尝试过检查内存泄漏

edit2:新增info.plist截图

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-10 07:28:31

所以我不知道为什么,但经过一些实验和移动东西后,我似乎已经修复了它。

我将CllocationManager作为一个单例,并将其移动到一个结构中,因为我在多个VC之间共享它,以便不会实例化它一次以上。

然后我就搬走了

代码语言:javascript
复制
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.activityType = .other
    locationManager.allowsBackgroundLocationUpdates = true
    locationManager.pausesLocationUpdatesAutomatically = false
    locationManager.showsBackgroundLocationIndicator = true

退出它自己的函数,进入viewDidLoad(),它仍然不起作用,所以我把它移到了viewDidAppear(),现在我的应用程序已经运行了8个小时,没有出现任何问题。我不确定我之前分享位置管理器的方式是否会导致第二次实例化,并将位置管理器设置重置为默认值,这将导致locationManager.pausesLocationUpdatesAutomatically变为真(不确定,只是猜测)

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

https://stackoverflow.com/questions/54583852

复制
相关文章

相似问题

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