【问题标题】:What happens when the user hits the home button?当用户点击主页按钮时会发生什么?
【发布时间】:2015-06-27 13:49:04
【问题描述】:

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

  1. 用户点击了一些触发服务器请求的按钮。
  2. 请求被发送到服务器并被处理。
  3. 用户点击主页按钮(并可能从 按两次主页按钮来记忆)。
  4. 脚本处理完毕并返回结果。

问题:用户的设备是否会收到此响应(我很确定从内存中删除时不会,但关闭应用程序时会怎样)?

【问题讨论】:

    标签: objective-c nsurlconnection home-button


    【解决方案1】:

    iOS 中有 5 种活动状态:

    • 未运行:应用尚未启动或正在运行,但 被系统终止。

    • Inactive:应用在前台运行,但没有接收 事件。可以将 iOS 应用程序置于非活动状态,例如 例如,当收到电话或短信时。

    • Active:应用正在前台运行,正在接收 事件。

    • 后台:应用在后台运行,正在执行 代码。

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

    在用户点击主页按钮的第三种情况下,应用程序将被发送到背景状态 #4,并且仍然可以接收数据并允许您的脚本运行。如果用户终止应用,(状态 #1)您的脚本将无法完成运行。

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

    【讨论】:

    • 对不起,有点晚了,还有一些工作要做,但迟到总比不对好;)
    【解决方案2】:
    1. 应用程序已暂停(在后台,未运行)- 在这种情况下,您的请求的执行将暂停。当您的应用进入前台时,请求通常会以超时结束。
    2. 应用程序已终止 - 在这种情况下,您的应用程序的上下文会丢失,并且在重新启动后没有正在运行的请求。

    这是您应该关注的两种情况。对我来说,当应用程序进入后台时取消所有正在运行的请求是一个很好的解决方案,因为当应用程序再次进入前台时重新启动所有内容会更容易。

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

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多