基本上我有两个标签。
其中 第一个 标签包含数据,而 第二个 包含一些基于数据的摘要类型在第一个标签的数据上。
在第一个标签中有事件列表。每当对事件进行添加/更新/删除操作时,需要重新计算摘要。重新计算的摘要会在数据库中创建行列表。然后从这些行显示摘要选项卡。
所以问题是汇总计算需要很长时间。所以它阻止了UI线程。所以我在线程中移动了计算以实现流畅的UI操作。
现在由于汇总计算在线程中运行,我不知道计算何时完成,现在我需要更新摘要标签数据并在计算过程中显示某些内容。
我当前的设置是这样的:
我的DatabaseHelper类:
add() {
...
// Do Add operation
...
reCalculateSummary();
}
remove() {
...
// Do remove operation
...
reCalculateSummary();
}
reCalculateSummary() {
new Thread(new Runnable() {
@Override
public void run() {
...
// calculate summary (may call another method)
...
// Add calculated summary to DB
}
}).start();
}
当reCalculateSummary()
正在运行时,摘要到标签应显示加载消息。
那么我怎样才能实现这整个局面?
我如何知道线程是否已完成执行?这样我就可以通过检索摘要数据的新db值来更新摘要选项卡数据。
所以这里有一些令人困惑的情况。如果您对了解情况有任何疑问,请随时询问。
提前致谢!