iOS:强制关闭应用程序在后台重新启动

时间:2016-03-22 17:38:05

标签: ios background restart terminate

我们的iOS应用程序出现了一个奇怪的情况,影响了我们的用户体验。

当用户背景是应用程序时(通过按主页按钮),我们可以清楚地看到应用程序进入后台。当用户然后强制关闭应用程序时(通过双击主页按钮并在应用程序上向上滑动),应用程序将正常终止。当应用程序重新打开时,它遵循正常的iOS启动顺序。

但是,如果用户在应用程序运行时双击“主页”按钮(将应用程序从活动状态重新启动,但不将其发送到后台),然后强行关闭应用程序(通过在应用程序上向上滑动),我们看到应用程序终止(进程被杀死),但随后应用程序立即在后台重新启动(使用新的pid)。该应用程序不是为在后台启动或运行而设计的,这导致了UX问题。

该应用程序没有权限在后台运行,但我们确实有一些第三方库,其任务在应用程序进入后台时会逐渐减少。

我怀疑这个问题是应用程序从非活动状态而非背景状态强制关闭的结果。如果应用程序首先进入后台,则第三方任务有机会完成。如果应用程序从非活动状态强制关闭,则任务永远不会在后台完成更改,因此iOS正在后台重新启动应用程序以完成更改。但是,目前还不清楚这是否是正确的行为。

-Stix

1 个答案:

答案 0 :(得分:0)

我有点认为这些问题是不言而喻的,但如果没有:

  1. 这是iOS的正确行为吗?当用户强行关闭应用程序而不将其置于后台时,iOS应该在后台重启应用程序吗?

  2. 如果这是正确的行为,会导致这种情况发生的原因是什么?是否有可能某些第三方框架 - 仍在运行尚未完成的后台任务 - 是罪魁祸首?

  3. 如果首先将应用程序放入后台(使后台任务能够完成/过期),则强制关闭可以正常工作。无论如何,当应用程序处于非活动状态时强制关闭应用程序时强制它进入后台吗?