DidEnterBackground - 继续等待 ASIHTTP 请求和解析结果

发布于 2024-11-04 07:08:23 字数 462 浏览 2 评论 0原文

也许你可以帮助我找到适当的方法来处理这个问题:

  1. 我有一个 NSTimer (在我的 AppDelegate 中启动),它触发一个类来启动异步服务器请求(我使用 ASIFormDataRequest)
  2. 当收到 HTTP JSON 响应时,我解析它使用 TouchJSON
  3. 然后我循环获取的 NSDictionary 来填充专用的 NSManagedObjectContext
  4. 然后我在某些用户交互中保存此上下文

有时发送 HTTP 请求并且用户退出应用程序。我想要获得额外的时间以便在后台完成任务 2 到 4。

我阅读了 Apple 文档,但仍然不清楚如何为已经开始的异步操作获得额外的时间?

简而言之,我应该如何使用 beginBackgroundTaskWithExpirationHandler ?

感谢您非常有用的帮助。

凯劳德

Maybe you could help me to find the appropriate way to handle this :

  1. I have a NSTimer (started in my AppDelegate) which fires a class to launch a asynchronous server request (I use ASIFormDataRequest)
  2. When HTTP JSON-response is received, I parse it using TouchJSON
  3. Then I loop the NSDictionary obtained to fill a dedicated NSManagedObjectContext
  4. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乞讨 2024-11-11 07:08:23

ASIHTTPRequest 支持在后台运行请求:

[request setShouldContinueWhenAppEntersBackground:YES];

如果您在委托通知中执行步骤 2-4 并设置上述标志,那么应该可以执行您想要的操作。

一旦您的应用程序进入后台,您将无法与用户交互。

ASIHTTPRequest supports running requests in the background:

[request setShouldContinueWhenAppEntersBackground:YES];

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文