【问题标题】:PhoneGap - Cordova / Application freeze during 5 seconds when resumed through app iconPhoneGap - Cordova / 应用程序在通过应用程序图标恢复时冻结 5 秒
【发布时间】:2014-09-03 08:35:59
【问题描述】:

我拥有一个 AngularJs 应用程序,我通过 Cordova 将其转换为原生应用程序。

整个工作在 iOS (iphone) 上,但是我刚刚注意到,如果我将应用程序放在后台,然后重新打开/恢复它,应用程序有时会“冻结”大约 5 秒钟然后工作。 5 秒内无滚动、无点击事件。

这有什么已知的原因吗?如何避免?这很令人沮丧。

我找到了导致问题的代码:

document.addEventListener("resume", function () {
                    $rootScope.$broadcast('retrieveAllNotifications', null);
            }, false);

所以,根据文档:

当 resume 事件触发时,像 alert() 这样的交互式函数将 需要包含在超时值为零的 setTimeout 调用中, 否则应用程序将挂起。例如

于是我变成了:

document.addEventListener("resume", function () {
                $timeout(function () {
                    $rootScope.$broadcast('retrieveAllNotifications', null);
                }, 0);
            }, false);

但它仍然挂起。

但是,当我删除广播时,它可以工作。

如何解决?例如将超时时间增加到 1 秒?

【问题讨论】:

    标签: ios angularjs cordova


    【解决方案1】:

    实际上,我注意到我检索到了 500 多个在 HTML 中显示(虽然隐藏)的通知。

    我所做的是删除了很多通知,我注意到不再冻结。

    对于 phonegap 应用来说,一次显示 500 条通知而不冻结实在是太重了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      • 2017-04-29
      相关资源
      最近更新 更多