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

What happens when the user hits the home button?

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

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

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

iOS中有5个活跃状态:

  • Not 运行ning:该应用尚未启动或 运行ning 但已启动 被系统终止。

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

  • 活动:应用程序运行正在前台运行,正在接收 事件。

  • 后台:应用程序运行在后台运行,正在执行 代码.

  • Suspended: 应用程序在后台,但没有代码正在运行 已执行。

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

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

  1. 应用程序已暂停(在后台,而不是 运行)- 在这种情况下,您请求的执行会暂停。当您的应用进入前台时,请求通常会超时。
  2. 应用程序已终止 - 在这种情况下,您的应用程序上下文丢失,重新启动后没有 运行 个请求。

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

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