V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
ro00
V2EX  ›  iDev

试了一下iOS7 Background Fetch相关的API,感觉有点坑爹啊

  •  
  •   ro00 · 2013-11-24 23:46:58 +08:00 · 9333 次点击
    这是一个创建于 4044 天前的主题,其中的信息可能已经有所发展或是发生改变。
    [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:60];
    设置了60秒,打开app退到后台,10多分钟过去了都没有反应

    但是如果自己手动在debug选项里面模拟一次,马上就开始Background Fetch了,所以代码应该写的没错啊..但是它就是不会自己开始进行Background Fetch

    看了下stackoverflow也是好多人等不到它自己响应啊..有谁知道怎么稳定的(比如隔1-2分钟)自动下载一些东西?还是说这在iOS7也是不可能实现的?
    8 条回复    1970-01-01 08:00:00 +08:00
    so898
        1
    so898  
       2013-11-25 01:56:49 +08:00
    这货不是根据用户的使用习惯或者你在服务器端发推送来激活的么?

    60秒运行一次的后台需要在项目里面做后台常驻声明的吧
    rcgary
        2
    rcgary  
       2013-11-25 07:05:45 +08:00
    你要用来做什么啊, 最近在做remote notifications push, 然后background fetch data, 我这一切正常啊, 查查document, 看看是不是漏了什么, 真机测试要记得去把Backgournd fetch的设置打开
    ro00
        3
    ro00  
    OP
       2013-11-25 09:52:23 +08:00
    @rcgary 从昨天到今天,基本上要隔2小时才自动fetch一次...感觉这个时间很难把握
    @so898 嗯,看来只能通过推送来激活比较靠谱,自动fetch非常不稳定
    ro00
        4
    ro00  
    OP
       2013-11-25 09:54:08 +08:00
    @rcgary 自动fetch是不需要APN来激活的,隔一段时间会来那么一次= =
    harrymoo
        5
    harrymoo  
       2013-11-25 11:41:06 +08:00
    我记得之前看文档,background fetch的开始时间完全看系统娘的心情来的。 不能强求。。。
    ro00
        6
    ro00  
    OP
       2013-11-25 14:24:57 +08:00
    @harrymoo 是的!下午发现隔10来分钟可以触发一次....早上是1-2小时一次...神奇啊...
    laurivers
        7
    laurivers  
       2013-11-25 16:53:35 +08:00
    时间间隔只是代表了“在上一次获取或者关闭应用之后,在这一段时间内一定不会去做后台获取”,而真正具体到什么时候会进行后台获取,无从得知的
    xujingbao
        8
    xujingbao  
       2013-11-26 13:48:33 +08:00
    fetch 全是由系统调度的,使用者不会知道它神马时候调用,开发者也不会知道,你设置的那个时间只是保证最小间隔。。。

    这个fetch适合用在实时性不高的app
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1095 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:46 · PVG 02:46 · LAX 10:46 · JFK 13:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.