V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hunono
V2EX  ›  Apple

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

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

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

    iOS 、maOS 等自带的相册就能在不打开 app 的情况下自动同步 iCloud ,且是可以做到实时同步的。
    eternityz
        5
    eternityz  
       287 天前
    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."
    xgfan
        6
    xgfan  
       287 天前
    第一个:下载可以托管给系统
    第二个:基本都是用的地理位置更新
    mcluyu
        7
    mcluyu  
       287 天前
    iOS APP 可以申请配置 10+种不同的后台模式, 比如蓝牙、静默推送、音频,AirPlay 、VoIP ,background fetch 等等, 只要愿意就可以实现后台下载。
    beimenjun
        8
    beimenjun  
       287 天前   ❤️ 4
    iOS 应用开发者来说一下。

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

    2. 群晖的 Photos Mobile 应该采用的是 BackgroundTasks ,向系统注册一个 task ,让系统决定运行时候(比如锁屏/充电之类用户不使用的时机)触发这个 task ,task 的内容就是后台备份任务,系统触发后,应用会执行对应的 task ,我估计群晖还做了一些判断是否处于 NAS 对应的内网之类的操作,然后再挂上一个几个小时间隔的 task ,下次系统有机会运行了,又会触发。
    okakuyang
        9
    okakuyang  
       287 天前 via iPhone
    ios 有后台 app 提交一个任务让系统在合适时间运行。
    s7964926
        10
    s7964926  
       287 天前
    这个帖子解决了很多疑惑,十分感谢。
    shawndev
        11
    shawndev  
       287 天前
    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
        12
    SenLief  
       287 天前 via iPhone
    简单来说就是有些后台是 ios 自己处理的,你只要告知 ios 我要求后台。
    ZRS
        13
    ZRS  
       287 天前 via iPhone
    没做过 iOS 开发,但我观察 iOS 后台下载似乎是限速的
    yohole
        14
    yohole  
       286 天前
    我在 ios 用的一个剪切板 APP ,目前使用体验中无法实时监控剪切板,哪怕 APP 打开之后,切换到其他 APP 一会就被杀后了,不知道这类需要实时监控的剪切板 APP 能否使用上述方案解决?

    如果目前 ios 有后台实时监控剪切板的 APP 也请大兄弟跟我说下,谢谢哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2432 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:45 · PVG 22:45 · LAX 07:45 · JFK 10:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.