今天我做了一些测试。
而且我发现,iOS在处于后台状态时并没有真正暂停该应用程序。
这是我测试的方式。

while(true){
    napLock.wait(timeout: .now() + napDelay)
    looperLog.i("running")
}

它在工作线程上运行。
当应用处于后台状态时,iOS会在iOS 13.5之前暂停该应用的所有 Activity 。
因此,控制台中不应再有日志。
但是,在前景状态和背景状态之间进行了几次切换后,iOS停止将此应用程序移至暂停状态,因此该应用程序始终在后台运行。
我认为这就是为什么有如此多的应用程序在电池使用情况页面上显示长时间运行的后台 Activity 的原因。
由于所有应用程序都处于后台状态而不是挂起状态,因此系统将其视为在后台运行。
我尚未迁移到新的UIScreenDelegate,所以我仍在使用AppDelegate来管理窗口和过渡。
如果有一些新功能,则不应将其应用于我的应用。
这种事情改变了整个生命周期,但发行说明中没有任何内容。
应用进入后台状态时是否有新的实现?
如何强制我的应用程序移至暂停状态?

最佳答案

我们也在我们的应用程序中看到了这一点。到目前为止,我们发现的唯一解决方案是手动停止计时器/时间表上正在运行的操作,这些操作通常是由操作系统挂起的应用程序来处理的。希望苹果公司为此发布修复程序...

关于ios - iOS在iOS 13.5.1中停止将应用程序移至暂停状态(保持在后台运行),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62407375/

10-11 22:29
查看更多