有没有做 iOS 开发的朋友, iOS 的后台刷新真的有用吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xiebruce
V2EX    程序员

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

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

    比如微信消息问题,收到消息推送后,打开会一直加载,如果消息很多就会加载很久,我知道这是因为 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 直接关闭这个权限,我都担心它用来给我预加载开屏广告。
    PinkStarrySky
        14
    PinkStarrySky  
       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
    可以参考这个主题
    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
    @xiebrce 双链笔记呀
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3817 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 05:16 PVG 13:16 LAX 21:16 JFK 00:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86