DidEnterBackground - 继续等待 ASIHTTP 请求和解析结果
也许你可以帮助我找到适当的方法来处理这个问题:
- 我有一个 NSTimer (在我的 AppDelegate 中启动),它触发一个类来启动异步服务器请求(我使用 ASIFormDataRequest)
- 当收到 HTTP JSON 响应时,我解析它使用 TouchJSON
- 然后我循环获取的 NSDictionary 来填充专用的 NSManagedObjectContext
- 然后我在某些用户交互中保存此上下文
有时发送 HTTP 请求并且用户退出应用程序。我想要获得额外的时间以便在后台完成任务 2 到 4。
我阅读了 Apple 文档,但仍然不清楚如何为已经开始的异步操作获得额外的时间?
简而言之,我应该如何使用 beginBackgroundTaskWithExpirationHandler ?
感谢您非常有用的帮助。
凯劳德
Maybe you could help me to find the appropriate way to handle this :
- I have a NSTimer (started in my AppDelegate) which fires a class to launch a asynchronous server request (I use ASIFormDataRequest)
- When HTTP JSON-response is received, I parse it using TouchJSON
- Then I loop the NSDictionary obtained to fill a dedicated NSManagedObjectContext
- Then I save this context on some user interactions
Sometimes the HTTP request is sent and the user quit the application. I want to get extra time in order to complete tasks 2 to 4 in background.
I read the Apple doc but it is still not clear how to gain extra time for an asynchronous action already started ?
In short, how should i use the beginBackgroundTaskWithExpirationHandler ?
Thanks for your very usefull help.
Kheraud
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ASIHTTPRequest 支持在后台运行请求:
如果您在委托通知中执行步骤 2-4 并设置上述标志,那么应该可以执行您想要的操作。
一旦您的应用程序进入后台,您将无法与用户交互。
ASIHTTPRequest supports running requests in the background:
If you do steps 2-4 inside the delegate notifications and set the above flag then that should do what you want.
You won't be able to interact with the user once your application has entered the background though.