当用户点击主页按钮时会发生什么?

时间:2015-04-20 17:35:14

标签: objective-c nsurlconnection home-button

我有一个可以与服务器通信的应用程序。 想象一下以下情况:

  1. 用户点击一些触发服务器请求的按钮。
  2. 请求将发送到服务器并进行处理。
  3. 用户点击主页按钮(可能会删除应用程序 通过按两次主页按钮来记忆。
  4. 脚本已完成处理并返回结果。
  5. 问题:来自用户的设备是否会获得此响应(我很确定在从内存中删除时不会,但在关闭应用时会发生什么情况?)

2 个答案:

答案 0 :(得分:3)

iOS中有5种活跃状态:

  • 未正常运行:该应用尚未启动或正在运行但是 由系统终止。

  • 无效:应用正在前台运行,但未接收     事件。可以将iOS应用程序置于非活动状态     例如,收到来电或短信时。

  • 有效:应用程序正在前台运行,并正在接收 事件

  • 背景:应用程序在后台运行,然后执行        代码

  • 暂停:应用程序在后台,但没有代码 执行。

在用户点击主页按钮的第三个场景中,应用程序将被发送到后台状态#4,并且仍然可以接收数据并允许您的脚本运行。如果用户杀死应用程序,(状态#1),您的脚本将无法完成运行。

因此,要回答您的问题,是的,如果用户将其置于“后台”状态,您的应用将继续执行代码,但如果他们关闭应用程序则不会,因为这会使您的应用处于“未运行”状态。

答案 1 :(得分:0)

  1. 应用程序暂停(在后台运行,未运行) - 在这种情况下,您的请求执行暂停。当您的应用程序到达前台时,通常请求以超时结束。
  2. 应用程序终止 - 在这种情况下,应用程序的上下文丢失,重新启动后没有正在运行的请求。
  3. 这是你应该关注的两个案例。对我来说,这是一个很好的解决方案,可以在应用程序进入后台时取消所有正在运行的请求,因为当应用程序再次进入前台时,更容易重新启动所有内容。

    此外,您可以设置后台模式,使应用程序能够在后台执行某些代码,但这是一个更高级的主题。