ios 这两种后台运行是怎么做到的?

2023-07-21 11:58:32 +08:00
 hunono
我不是开发者,只是普通用户,纯好奇。
ios 后台运行一直是坑,听说是苹果对后台运行管的很严格。
1 、崩坏星穹铁道这个游戏可以后台下载,当有 4 、5G 更新时,进入游戏开启下载后,切出游戏使用其他 app 时下载不会断开、暂停。以前玩过的所有的游戏更新都没法做到在后台下载,黑屏也不行,只能傻傻的让屏幕常亮,在下载界面呆 10 分钟。为什么以前的游戏做不到后台下载,星穹铁道难道和 apple 有 py 交易开放了这功能?
2 、群晖的 Photo Mboile 怎么做到后台自动备份 ios 相册的,我一周没打开这 app ,这 app 确实帮我备份了相册,只是不是实时的,可能会延迟 1 天半天,在我的理解里只要不打开 ios 的 app ,备份相册这类“繁重”的工作 ios 做不到。
3116 次点击
所在节点    Apple
14 条回复
estk
2023-07-21 12:08:11 +08:00
Google Phones 如果没在后台都做不到备份相册
i8086
2023-07-21 12:23:22 +08:00
打开通知权限,可以在后台继续下载数据,王者荣耀和星穹铁道都可以,手机只有这两个游戏。

打开通知权限,OneDrive 可以后台继续上传照片和视频。
finab
2023-07-21 12:28:06 +08:00
网络下载本就是支持后台的,下载请求会被系统托管维持在后台
备份相册可能是位置权限,这个权限打开位置更新时可以拉起 APP 运行代码
HAYABUSA
2023-07-21 12:28:32 +08:00
第 2 点,「在我的理解里只要不打开 ios 的 app ,备份相册这类“繁重”的工作 ios 做不到。」

iOS 、maOS 等自带的相册就能在不打开 app 的情况下自动同步 iCloud ,且是可以做到实时同步的。
eternityz
2023-07-21 12:32:37 +08:00
https://developer.apple.com/documentation/foundation/urlsession

"Download tasks retrieve data in the form of a file, and support background downloads and uploads while the app isn’t running."
6IbA2bj5ip3tK49j
2023-07-21 12:33:32 +08:00
第一个:下载可以托管给系统
第二个:基本都是用的地理位置更新
mcluyu
2023-07-21 14:19:31 +08:00
iOS APP 可以申请配置 10+种不同的后台模式, 比如蓝牙、静默推送、音频,AirPlay 、VoIP ,background fetch 等等, 只要愿意就可以实现后台下载。
beimenjun
2023-07-21 15:21:25 +08:00
iOS 应用开发者来说一下。

1. 后台下载是有官方的方案的,但是相对来说是有额外工作量,不同 iOS 版本间还有点差异,太古早的可能还不好做。游戏很多时候这种功能优先级可能没那么高,或者支持的版本仅可能的老的时候也用不上这功能,所以你之前可能没遇到过支持后台下载的游戏。

2. 群晖的 Photos Mobile 应该采用的是 BackgroundTasks ,向系统注册一个 task ,让系统决定运行时候(比如锁屏/充电之类用户不使用的时机)触发这个 task ,task 的内容就是后台备份任务,系统触发后,应用会执行对应的 task ,我估计群晖还做了一些判断是否处于 NAS 对应的内网之类的操作,然后再挂上一个几个小时间隔的 task ,下次系统有机会运行了,又会触发。
okakuyang
2023-07-21 16:09:29 +08:00
ios 有后台 app 提交一个任务让系统在合适时间运行。
s7964926
2023-07-21 16:45:01 +08:00
这个帖子解决了很多疑惑,十分感谢。
shawndev
2023-07-21 18:35:10 +08:00
8L 的答案已经比较准确了,更详细的资料。

官方的相关文档 https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background/

Xcode 提供的后台模式
Audio,AirPlay, and Picture in Picture
Location updates
Voice over IP
External accessory communication
Uses Bluetooth LE accessories
Acts as a Bluetooth LE accessory
Background fetch
Remote notifications
Background processing
Uses Nearby Interaction
Push to Talk
SenLief
2023-07-21 21:22:37 +08:00
简单来说就是有些后台是 ios 自己处理的,你只要告知 ios 我要求后台。
ZRS
2023-07-21 21:36:18 +08:00
没做过 iOS 开发,但我观察 iOS 后台下载似乎是限速的
yohole
2023-07-21 23:32:11 +08:00
我在 ios 用的一个剪切板 APP ,目前使用体验中无法实时监控剪切板,哪怕 APP 打开之后,切换到其他 APP 一会就被杀后了,不知道这类需要实时监控的剪切板 APP 能否使用上述方案解决?

如果目前 ios 有后台实时监控剪切板的 APP 也请大兄弟跟我说下,谢谢哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/958554

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX