V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xiebruce
V2EX  ›  程序员

有没有做 iOS 开发的朋友, iOS 的后台刷新真的有用吗?

  •  
  •   xiebruce ·
    xiebruce · 2022-11-17 17:44:25 +08:00 · 4076 次点击
    这是一个创建于 766 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如微信消息问题,收到消息推送后,打开会一直加载,如果消息很多就会加载很久,我知道这是因为 iOS 的推送是系统的推送,不是 app 自己做的,所以进入 app 后要重新加载一遍,这样有助于省电,以及 app 被滥用(在后台搞小动作)等。

    但是 iOS 不是有个“后台刷新”功能嘛,那如果开启了后台刷新,它到底允许刷新什么呢?因为我是感觉既然开了 app 后台刷新,那微信的消息应该能在后台自动加载下来,而不是等我打开微信之后才加载呀。

    有没有做 iOS 开发的朋友知道“后台刷新”这功能具体逻辑?它到底允许后台刷新什么?

    27 条回复    2022-11-19 00:38:00 +08:00
    randomNick
        1
    randomNick  
       2022-11-17 18:36:38 +08:00   ❤️ 1
    对应的专业术语叫 background fetch ,就是 app 进入后台后,系统会根据自己的判定逻辑允许 app 在后台进行部分数据拉取。大部分 app 都没用好这个机制,简而言之就是没 luan 用的功能,关了完全不影响
    rekulas
        2
    rekulas  
       2022-11-17 18:42:13 +08:00
    我感觉为了尽量省点后台刷新有可能只是加载了数据,但并没有渲染到 ui 层?所以打开的时候需要渲染吧
    zhaokun
        3
    zhaokun  
       2022-11-17 20:50:21 +08:00 via iPhone
    不是 ios 开发,了解到的大多数 app 都没有适配
    adminisqq
        4
    adminisqq  
       2022-11-17 20:53:40 +08:00
    我想问是国内的 app 生态环境导致没适配、不想适配?还是全球开发者大部分都这样?有做得好的 app 参考吗?
    bjzhush
        5
    bjzhush  
       2022-11-17 21:11:56 +08:00   ❤️ 4
    有用,目前我只用到一个,但是非常有用。
    我 iPhone 的所有照片都会自动备份到 google photos ,打开了后台刷新,我观察过,正常手机拍个照,十来分钟就能自动备份到 google photos ,平时压根不用自己手动备份。
    阿里云盘之类的也有后台自动备份,但是它不配,我给关了~~
    xiebruce
        6
    xiebruce  
    OP
       2022-11-17 21:22:18 +08:00
    @randomNick 原来如此哈哈
    wwbfred
        7
    wwbfred  
       2022-11-17 21:22:38 +08:00
    我已经关了几年了,并没有发现什么影响。
    当然你要是有什么特殊的场景,我不敢保证,需要自己测试。
    xiebruce
        8
    xiebruce  
    OP
       2022-11-17 21:23:33 +08:00
    @bjzhush 哦哦,云盘备份有用
    xiebruce
        9
    xiebruce  
    OP
       2022-11-17 21:23:58 +08:00
    @wwbfred 我也是一直关着
    summer2019
        10
    summer2019  
       2022-11-17 21:24:42 +08:00 via iPhone
    @rekulas 渲染数据压根不需要多少性能,或者时间
    xiebruce
        11
    xiebruce  
    OP
       2022-11-17 21:24:50 +08:00
    @rekulas 也许吧哈哈
    aptx4689
        12
    aptx4689  
       2022-11-17 21:37:45 +08:00
    https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background/about_the_background_execution_sequence

    ```

    If your app is in memory and suspended when an event arrives, the system resumes the app in the background, following this sequence:

    The system resumes the app.

    UIKit calls the app delegate’s applicationDidEnterBackground(_:) method.

    UIKit delivers the event that caused the launch.

    The app’s snapshot is taken.

    The app may be suspended again.

    ```
    weeei
        13
    weeei  
       2022-11-17 21:49:51 +08:00   ❤️ 2
    这个功能的问题是 App 不知道自己能运行多久就会被系统暂停。所以开发者也没有什么意愿去适配。更何况这个只是锦上添花的功能。总不能用户关闭了后台刷新就让 App 功能有缺失,所以它不是必须适配的。
    对于国内 App 直接关闭这个权限,我都担心它用来给我预加载开屏广告。
    SimleCp
        14
    SimleCp  
       2022-11-17 22:12:45 +08:00   ❤️ 3
    这个功能, 在系统里我就直接关了, 不允许后台刷新. 所以 app 适配不适配没什么关系. @bjzhush 谷歌确实对这种小功能很在意, 谷歌邮箱, 在网页上阅读了邮件, 过几秒, 手机上的通知就会自动消失. 而 QQ 邮箱就很弱智的继续显示, 你在网页上看了邮件, 手机上的通知还要自己划拉掉.
    xiebruce
        15
    xiebruce  
    OP
       2022-11-17 23:57:17 +08:00
    @aptx4689 从这个链接里看,那截图里是有个“background fetch”,理论上开启了后台更新,应该是可以后台获取数据的,不过看上去微信似乎并没有用上这功能
    erhaosan
        16
    erhaosan  
       2022-11-18 00:07:50 +08:00 via iPhone
    有用,总开关开着,但只允许了两三个 App 。和楼上一样谷歌相册用来同步,还有一个 NewNewsWire 用来自动更新 RSS 。
    mu2er
        17
    mu2er  
       2022-11-18 00:56:38 +08:00 via iPhone
    感觉定位的 always 权限都比这个后台刷新更能保活 app ,但会安慰性的打开一些需要后台备份的 app 。
    rekulas
        18
    rekulas  
       2022-11-18 10:05:28 +08:00   ❤️ 1
    @summer2019 很费的吧,虽然没做过 ios 但做过其他非主流手机的,接收和通知只需后台一个微线程就搞定了,渲染到 ui 需要把整个 app 启起来,资源消耗量不是一个级别,系统会允许这样搞?
    GoodRui
        19
    GoodRui  
       2022-11-18 14:17:34 +08:00 via iPhone
    可以参考这个主题
    https://www.v2ex.com/t/896048
    aptx4689
        20
    aptx4689  
       2022-11-18 15:05:18 +08:00
    @xiebruce 文档的意思是,如果程序没实现,就不会后台刷新,即使是打开了这个开关
    summer2019
        21
    summer2019  
       2022-11-18 15:19:47 +08:00 via iPhone
    @rekulas 如果你是指对比获取数据来说的话,刷新 UI 确实需要更多资源。
    不过,既然当时在后台,完全不需要刷新 UI ,等切换到前台再刷新也不迟。
    huangqihong
        22
    huangqihong  
       2022-11-18 15:26:29 +08:00
    @bjzhush 我保存在阿里云盘的壁纸,判断有张异常,不知道为啥,就是不准你下载了,可是真的就是一张普通的壁纸啊
    bjzhush
        23
    bjzhush  
       2022-11-18 15:36:51 +08:00
    @huangqihong 被误判了呗,这一点百度网盘、阿里云盘跟 Dropbox 、google drive 完全没法比,所以百度网盘阿里云盘我只用于收点电影之类的
    Facebook8866
        24
    Facebook8866  
       2022-11-18 18:47:11 +08:00 via Android
    有沒有會安裝黑蘋果係統的,請求教一下
    xiebruce
        25
    xiebruce  
    OP
       2022-11-18 22:28:40 +08:00
    @aptx4689 这个确实,有这功能但也需要程序来实现
    xiebruce
        26
    xiebruce  
    OP
       2022-11-18 22:29:27 +08:00
    @GoodRui 套娃呀
    GoodRui
        27
    GoodRui  
       2022-11-19 00:38:00 +08:00 via iPhone
    @xiebruce 双链笔记呀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:51 · PVG 03:51 · LAX 11:51 · JFK 14:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.