我有一些情况可以说5种情况。 关键是我不知道他们每个人会持续多久。我知道每个情况何时结束。
所以想象这个方法是随机调用的,它不是随机的,但我不知道什么时候会被调用。
public void refresh(int i){
}
知道我可以通过每次调用刷新时增加他来更新进度条,但用户体验将是“看到栏增加20%,比等待和没有动作,再次跳跃20%并再次堆叠,等等...
我想要实现的目标是让更多的东西得到安慰。 我知道这不是一件容易的事,但我知道之前有人遇到过这个问题,那么解决方法是什么?
答案 0 :(得分:3)
如果更新基本上是随机到达的,您可以考虑使用“微调器”而不是进度条。最终结果几乎相同:用户已经知道该过程正在进行中。如果您想提供更多信息,可以更新微调器旁边的文本标签,以指示序列的哪个部分正在进行中:
答案 1 :(得分:1)
我之前遇到过这个。我所做的是估计我的每一个“情况”,他们需要多少100%的进展。因此,任务1将上升至15%,任务2可能上升至50%,等等。请记住,这只是一般估计。然后,在每种情况下,我将计算100%完整性的单个任务并相应地增加。然后,我会根据我所在的给定任务来计算实际进度。所以,如果我在任务2中,我将基于100%的特定任务进度计算,计算出35%的我估计任务2实际采取的总进度。我希望这会对你有所帮助。
答案 2 :(得分:1)
快速提问,这是您想要的进度条吗?
根据我的阅读,你不知道估计的时间,只知道每个块是20%,你不知道每个块需要多长时间,或者它们的时间可以通过,但是你想让条形移动更多顺利然后大20%完成块。
由于你只有5个测量点,除非你可以在每个任务上添加另一层进度报告,否则你就会猜测。
如果你想猜测,你可以粗略估计任务所需的时间。再次基于手头的任务,您可以通过硬编码预期时间来做出好的或坏的估计。你要求的伎俩看起来像进步(隐藏你在1/5的操作中处于不确定点的事实)
现在让计数器在给定时间内缓慢向下一个标记移动(比如说1分钟)但是当你接近时间时,减少进度,这意味着你要么看到条形移动得更快或更慢方法预计下一点。你会有进步,但这将是纯粹的随机猜测。如果任务结束之前你有一些“缺失”%以使下一个进度差距更大,如果你的速度慢,那么它的速度会越来越慢。
这是一项额外的工作,可以展示最让人误解的内容,以显示进度没有停滞,您可能希望与进度条一起寻找其他选项。