【问题标题】:Questions about app state after tapping on app icon after apps enters suspended state应用程序进入挂起状态后点击应用程序图标后有关应用程序状态的问题
【发布时间】:2018-09-27 23:59:16
【问题描述】:

我正在将一个应用程序置于后台。

  1. 假设我没有做任何事情来让应用程序在后台保持活动状态,那么应用程序会在 5 秒内进入挂起状态。对吧?

  2. 如果我随后点击应用程序图标会发生什么?这不会触发didFinishLaunch 对吧?它只会让我回到上一个屏幕并触发didbecomeActivewillenterforeground 通知。我不会收到任何其他回调。对吧?

  3. 假设没有重新启动手机,第 2 点是正确的,即使在我点击主页然后点击应用程序图标之间有几个小时。对?它是否还保留设备重启但不强制重启?
  4. 唯一一次我不会回到我所在的屏幕(在回家之前)是设备收到内存警告并且我的应用程序已从挂起状态中刷新。此时点击应用程序图标将产生didFinishLaunch。对吗?

(我之所以问这一切,是因为有时在将应用程序置于后台并再次点击应用程序图标后(例如 10 分钟后),应用程序正处于启动阶段。大多数只是回到之前的屏幕)

我已经看过Will ios terminate the app running in background after a specific time?,但这并没有解决我想要的所有方面。

【问题讨论】:

  • 不确定什么是反对票:/

标签: ios swift out-of-memory appdelegate uiapplicationdelegate


【解决方案1】:

它只会让我回到上一个屏幕,还会触发 didbecomeActive 和 willenterforeground 通知。

对,如果您的应用没有在后台终止。

我不会收到任何其他回调。

不一定正确。例如,如果您被本地通知召唤到前线,您也会收到有关此的事件。

假设没有重启手机,第 2 点是正确的,即使在我点击主页和返回应用程序图标之间有几个小时。

不一定。该应用程序很可能会在后台静默终止。

它是否也持续设备重启但不强制重启?

绝对不是。设备关闭时应用程序如何运行?关闭应用会终止所有应用。

我之所以问这一切,是因为有时在将应用程序置于后台并再次点击应用程序图标后(例如 10 分钟后),应用程序正处于启动阶段

这不是时间的问题。看门狗进程不断梳理挂起的应用程序,寻找占用过多内存的应用程序,以便其他应用程序可以运行。如果您是其中之一,您一定不会感到惊讶。

您可以从头开始回到前线,也可以从暂停状态恢复活力;这是 iOS 应用程序生命中最基本的事实!你只需要接受它。

但是您可以采取很多措施来减少在后台被终止的机会。在背景中放弃消耗内存的对象是最重要的。

【讨论】:

  • 你可能想在这里阅读我的场景列表:apeth.com/iOSBook/ch11.html#_application_lifetime_events
  • 绝对不是。设备关闭时应用程序如何运行?关闭应用程序会终止每个应用程序您的意思是下次重启后每个应用程序都会通过didFinishLaunching?!
  • 当然。我不知道interrabang是干什么用的。还有什么更明显的?
  • 没什么。我只是认为 iOS 会为你保持暂停状态,并且没有像你以前那样在这个行业中:/
猜你喜欢
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多