我目前正在将我的应用从使用ASIHTTPRequest迁移到AFNetworking。我知道尽可能避免同步请求,但在我的应用程序中,我只有一个地方使用我的应用程序。在应用程序委托applicationDidEnterBackground()方法中,我需要运行HTTP请求来查询数据,以在应用程序转到后台时设置应用程序徽章编号。当异步运行时,这很少有效,因为该方法刚刚退出并且应用程序在HTTP请求完成之前暂停。使用ASIHTTPRequest,我使用了[request startSynchronous]方法,这意味着HTTP请求每次都完成100%,并且徽章被正确更新。我看到AFNetworking没有明显的同步选项,那么任何人都可以提出一种可以同步使用的方法,或者一种替代解决方案吗?iOS - 使用AFNetworking执行同步HTTP请求
2
A
回答
7
已经找到了做到这一点的方法 - 使用其中一个AFHTTPRequestOperation派生方法 - setShouldExecuteAsBackgroundTaskWithExpirationHandler:在操作系统挂起应用程序之前,该操作会给操作带来额外的时间。所以我的代码是:
[operation setShouldExecuteAsBackgroundTaskWithExpirationHandler:nil];
[operation start];
这正是我所需要的,并解决了我的问题。
乔纳森
更新:由于鲍勃指出使用这种方法实际上并不同步进行操作,但在我的情况的理想解决方案在没有同步方法。
相关问题
- 1. AFNetworking同步请求
- 2. 使用RestKit执行同步请求
- 3. AFNetworking HTTP PUT请求
- 4. AFNetworking请求API iOS
- 5. 扭曲/执行异步http请求
- 6. 执行HTTP POST请求,然后执行HTTP GET请求
- 7. 执行HTTP请求
- 8. iOS:使用performSelectorInBackground发送同步请求
- 9. jquery ajax同步http请求
- 10. 同步发送http请求
- 11. 角度同步http请求
- 12. 使iOS块同步执行
- 13. ios和同步请求
- 14. 角度使伪同步HTTP请求
- 15. 序列化NSURLConnection请求(iOS) - 使用同步请求?
- 16. AFNetworking和同步请求,以履行在线注册过程
- 17. 执行HTTP请求时NetworkOnMainThreadException
- 18. 执行的请求网/ HTTP
- 19. AFNetworking同步运行
- 20. Python:尝试使用请求登录并执行HTTP请求
- 21. 如何使用请求库执行HTTP DELETE请求
- 22. 如何使用$ http创建一个同步http请求循环?
- 23. 使用Node.js执行同步获取请求
- 24. AFNetworking - 使用ETag的请求
- 25. 使用AFNetworking请求分配
- 26. 异步HTTP请求,排队请求
- 27. Gatling同步Http请求/响应链
- 28. 捕获失败的同步HTTP请求
- 29. AngularJS Http请求同步处理?
- 30. HTTP脱机同步请求iphone
您开始了背景基础任务。这不会执行请求同步。所以我建议你编辑你的问题来澄清。 –