我知道在加载应用程序时,platform.ready会触发,暂停后打开应用程序时会触发platform.resume。
但是,应用程序加载而不是恢复时,应用程序是否有一定的时间没有被使用?如果是这样,iOS和Android的时间是多少?
似乎无法找到关于此的任何信息,并希望了解这一点,谢谢!
答案 0 :(得分:2)
TLDR:如果应用来自后台,我们通常会收到resume
个事件。
如果操作系统内存不足,可能会完全清除应用,我们会收到deviceready
事件。我不知道应用程序被操作系统终止后有任何时间限制,这应该只会发生,如果操作系统内存不足,重新启动或者用户手动终止应用程序。
通过查看event docs,我们可以看到Cordova应用的典型生命周期:
deviceready
event pause
event触发。resume
event发射的那一刻。要回答您的实际问题,我们必须查看每个本机平台的实现。第一个iOS。
iOS应用具有以下执行状态(来源:developer.apple.com):
因此,放在后台的应用程序将被置于后台模式,其描述如下:
应用程序在后台并执行代码。大多数应用都会输入此 简要说明他们被暂停的方式。但是,一个应用程序 请求额外执行时间可能会在此状态下保持一段时间 时间。 ...
假设我们的应用程序没有在后台/请求中运行,额外的执行时间将仅暂时保持此模式,然后进入暂停模式。
暂停模式的描述如下(重点是我的):
该应用程序位于后台,但未执行代码。系统 将应用程序自动移动到此状态,并且之前不会通知它们 这样做。暂停时,应用程序仍保留在内存中但不会 执行任何代码。
当内存不足时,系统可能会清除挂起状态 应用程序,恕不另行通知为前台应用程序腾出更多空间。
几乎同样适用于Android。 Android活动的生命周期稍微复杂一些,您可以在developer.android.com上查找详细信息。底线与iOS(Source)相同:
系统在需要释放RAM时杀死进程
因此,如果操作系统内存不足,可能会完全清除我们的应用程序,我们的生命周期将从deviceready
事件开始。我不知道应用程序被操作系统终止后有任何时间限制,这应该只会发生,如果操作系统内存不足,重新启动或者用户手动终止应用程序。