Nativescript - ActivityIndi​​cator不适用于特定的代码块

时间:2017-11-13 19:47:30

标签: nativescript

我希望在执行漫长的过程时显示活动指示符。

我将模型忙标志设置为true。

然后我调用一个返回Promise的方法 - 当promise调用解析时,然后在我的'然后'中将busy标志设置为false。处理程序。

当我等待承诺解决时,我希望显示活动指示器动画,但不是。

我检查并确保UI设置正确并且有效。

正在完成的工作是使用nativescript-calendar插件 - 我添加了一些日历条目。

我评论了正在完成的工作,只是稍微睡了一会儿然后调用resolve()并且动画有效。

因此,活动指示器和Promise机制设置正确 - 这个插件正在做的事情导致AI无法显示。

什么可能导致这种行为?

我实际编辑了Promise工作代码 - 暂停了大约1秒,然后开始了日历工作。我看到AI 1秒然后冻结。

所以看起来日历写入导致AI冻结。

我的理解是Promise工作在后台完成,不应影响前景动画。

1 个答案:

答案 0 :(得分:0)

使用SQLite时我遇到了类似的问题。

由于您没有明确声明您在工作程序中运行日历,我假设您将其保留在UI线程(主线程)中。

在UI线程中完成的大量工作将导致明显的延迟/延迟。因此,例如,您调用活动指示器然后调用最大化线程的进程,该过程完成活动指示器将在屏幕上绘制,但随后在流程结束时显示之前立即隐藏。

解决此问题的理想方法是将日历写入代码移动到工作人员(多线程应用程序),并在成功消息上关闭活动指示器。