我希望在执行漫长的过程时显示活动指示符。
我将模型忙标志设置为true。
然后我调用一个返回Promise的方法 - 当promise调用解析时,然后在我的'然后'中将busy标志设置为false。处理程序。
当我等待承诺解决时,我希望显示活动指示器动画,但不是。
我检查并确保UI设置正确并且有效。
正在完成的工作是使用nativescript-calendar插件 - 我添加了一些日历条目。
我评论了正在完成的工作,只是稍微睡了一会儿然后调用resolve()并且动画有效。
因此,活动指示器和Promise机制设置正确 - 这个插件正在做的事情导致AI无法显示。
什么可能导致这种行为?
我实际编辑了Promise工作代码 - 暂停了大约1秒,然后开始了日历工作。我看到AI 1秒然后冻结。
所以看起来日历写入导致AI冻结。
我的理解是Promise工作在后台完成,不应影响前景动画。
答案 0 :(得分:0)
使用SQLite时我遇到了类似的问题。
由于您没有明确声明您在工作程序中运行日历,我假设您将其保留在UI线程(主线程)中。
在UI线程中完成的大量工作将导致明显的延迟/延迟。因此,例如,您调用活动指示器然后调用最大化线程的进程,该过程完成活动指示器将在屏幕上绘制,但随后在流程结束时显示之前立即隐藏。
解决此问题的理想方法是将日历写入代码移动到工作人员(多线程应用程序),并在成功消息上关闭活动指示器。