1

扩展正在开发的应用程序的功能,我需要向用户显示进度通知对话框。问题是,我不能把它做好。此外,我无法正确关闭此通知程序。已尝试将时钟和变量设置为例如“5000ms”,然后设置为“0”,没有任何缺失。

我需要实现的是以下功能:

一种。检查标签“storeparsedData”是否在 TinyDB 中,填充了获取的 JSON 数据。我已经按照我的相关问题中的@Taifun 建议完成了这项工作。

湾。如果标签不存在(空列表),请执行 getWeb.gotText 块以获取 JSON 数据(这是通过过程“getWebData”完成的。此功能正确,但需要大约 1'35'' 或更多时间,所以需要向用户展示一些东西。

C。在从 Web 获取 JSON 数据时,需要向用户显示“ShowProgressDialog”通知程序,这样我就可以应对看似冻结的智能手机。

d。如果标签“storeparseData”填充了提取的 JSON 数据,则关闭通知程序。

已尝试以下编码,但没有相关成功:

在此处输入图像描述

有人可以帮我在这个应用程序中实现这个功能吗?一个块代码或一些可以遵循和学习的东西,会很棒。预先感谢大家的回答。

[编辑1]

在@Taifun 建议之后,有问题的功能似乎可以正常工作,但是有一个问题。“ShowProgressDialog”块永远不会触发,无论是在设备上还是在伴侣上。此外,在收到 JSON 数据时,应在哪里附加阻止“DismissProgressDialog”以禁用通知程序?

这是审查过的块代码,用于检查 TinyDB 中存储的标签。“ShowProgressDialog” 永远不会按应有的方式触发。对这个问题有什么建议吗?

在此处输入图像描述

下面是 getWeb 函数获取 JSON 数据的代码块:

在此处输入图像描述

请告知,如果适用,请提供块代码。谢谢大家。

4

1 回答 1

1
  1. 您的progressNotifier.AfterChoosing事件永远不会触发,因为该事件仅在从Notifier.ShowChooseDialog块中选择某些内容后才会触发,而不是在Notifier.ShowMessageDialog块中。因此,请改用Notifier.ShowChooseDialog块并将该块中的第二个按钮设置为空字符串。

在此处输入图像描述

  1. 正如您已经意识到的那样,您的while循环将冻结您的应用程序......您根本不需要该Clock.Timer事件来检查您的数据是否存在。

只需这样做:在Web.GotText事件中收到您的数据并将数据存储在 中后TinyDB,然后关闭进度对话框并显示消息“数据库已准备好”。

在此处输入图像描述

更新:不要在循环内存储你的列表 n 次for each in list,你应该在循环完成后只存储一次for each in list......对于DismissProgressDialogandShowAlert块......

在此处输入图像描述

该连接块的目的是什么?你可能想删除它.​​..

于 2016-01-14T20:01:12.497 回答