Jon*_*ham 2 http badge ios afnetworking
我目前正在将我的应用程序从使用ASIHTTPRequest迁移到AFNetworking.我知道如果可能的话,应避免同步请求,但在我的应用程序中,我只有一个地方,我使用一个.在app delegate applicationDidEnterBackground()方法中,我需要运行HTTP请求来查询数据,以便在应用程序转到后台时设置应用程序徽章编号.当异步运行时,这很少起作用,因为该方法刚刚退出,并且在HTTP请求完成之前应用程序被挂起.使用ASIHTTPRequest我使用[request startSynchronous]方法,这意味着HTTP请求每次都完成100%并且徽章已正确更新.我看到AFNetworking没有明显的同步选项,那么有人可以建议一种可以同步使用的方式,或者另一种解决方案吗?
已经找到了这样做的方法 - 使用AFHTTPRequestOperation衍生物之一有方法 - setShouldExecuteAsBackgroundTaskWithExpirationHandler:这使操作在操作系统暂停应用程序之前完成了额外的时间.所以我的代码是:
[operation setShouldExecuteAsBackgroundTaskWithExpirationHandler:nil];
[operation start];
Run Code Online (Sandbox Code Playgroud)
这正是我所需要的并解决了我的问题.
乔纳森
更新:正如Bob所指出的,使用这种方法实际上并不是同步执行操作,但在没有同步方法的情况下,这是我的理想解决方案.
| 归档时间: |
|
| 查看次数: |
3138 次 |
| 最近记录: |