最近,不少用户反映升级到 iOS 13.2 或 iPadOS 13.2 之后,设备开始频繁“杀后台”——微信、Safari 等应用,只要切出去一会儿再回来,就得重新加载,画面直接从启动页开始。这一下子炸了锅,毕竟谁也不想聊着聊着天,切出去回个消息,回来微信就重启了。
先说说到底什么是“杀后台”。说白了,就是当你打开一个应用后返回桌面,或者切换到另一个应用,系统为了腾出运存空间,会把之前那个应用在后台的进程给关掉,把占用的内存彻底释放。等你再切回来,应用只能从头启动,像第一次打开那样重新加载。这个机制对于内存吃紧的老设备来说偶尔用用还行,但如果在旗舰机上连微信、Safari 这种基础应用都频繁重载,体验就会大打折扣。
消息出来之后,微信团队连续两天向部分 iOS 用户发送了推送。第一天,微信表示:“升级到 iOS 13.2 版本,可能会导致 App(如微信)在回到手机桌面或锁屏后被系统关闭,下次打开需要重新启动 App。建议先不升级 iOS 版本,或耐心等待问题修复。”第二天,微信又发了一条:“我们收到少量用户反馈……目前,我们已找到解决方案,并正在紧急联调测试中,会尽快修复完成。请大家耐心等待。”这两条消息至少说明微信团队已经注意到了问题,而且已经在想办法。
不过事情很快就有了另一种说法。有技术大牛分析了 iPhone 的运行日志后发现,问题可能并不全在 iOS 13.2 身上,而是和微信的后台行为有关。日志显示,微信在后台进行了极其频繁的唤醒操作——短短两分半钟内,竟然触发了四万五千次 wakeup 调用,换算下来平均每秒 319 次!对于微信这样一个以文字传输为主的通讯软件来说,这种唤醒频率高得离谱。技术圈里都开玩笑说,这已经可以算作病毒式唤醒了。iOS 13.2 对后台唤醒的总次数限制是 45000 次,而日志显示微信在 141 秒内就唤醒了 45001 次——刚好超出一次,被系统 kill 掉也就不奇怪了。其他应用倒还好,所以按这个分析,这次杀微信后台的锅,其实不完全是 iOS 13.2 的。

然而,这个解释并不能说明其他应用后台也被杀的问题。比如有国外网友反馈,在 iPhone 11 Pro 上观看 YouTube 视频时,暂停视频去回复一个 iMessage,结果在 iMessage 里还没待够一分钟,返回 YouTube 时就已经重载了,正在看的视频也丢失了。同样的情况在 iPad Pro 上也有出现。相比 iOS 12,iOS 13 下应用和 Safari 标签页的重新加载频率明显更高。这说明杀后台的问题并不仅仅是微信一个应用的事,系统本身对后台进程的管理策略可能也发生了变化。

截止目前,苹果公司还没有对此问题给出正式回应。如果你也遇到了类似的情况,可以试试这个临时解决办法:依次进入“设置” → “通用” → “后台 App 刷新”,把那些经常被杀的应用程序(比如微信、Safari、YouTube)的后台刷新开关打开。这样一来,系统会允许这些应用在联网时保持后台刷新,虽然不能彻底解决杀后台问题,但确实能一定程度减少重载的次数。当然,最终的修复还是要等苹果和开发者那边拿出更彻底的方案。眼下,也只能先忍忍了。
