我有一个方法,我想延迟一秒钟,而延迟运行应该有一个加载动画(ProgressBar)。
当该方法现在运行时,加载动画不会出现。当我不调用超时时,它会出现,当我不使它不可见后,它会在超时后出现。
那么,在超时运行时,如何显示加载动画?线程也有同样的问题。睡眠(1000)
public void firstMethod(){
ProgressBar pgLoading = (ProgressBar) findViewById(R.id.pgLoading);
pgLoading.setVisibility(VISIBLE);
try {
TimeUnit.SECONDS.sleep(1);
}catch(InterruptionException ex){
ex.printStackTrace();
}
pgLoading.setVisibility(INVISIBLE);
}
这是因为当前线程正在暂停。为了避免这种情况,请将延迟/长进程放在不同的线程中。例如:
public void firstMethod(){
ProgressBar pgLoading = (ProgressBar) findViewById(R.id.pgLoading);
pgLoading.setVisibility(View.VISIBLE);
new Thread(()->{
// Do all your long process here
try {
TimeUnit.SECONDS.sleep(1);
}catch( InterruptedException ex){
ex.printStackTrace();
}
runOnUiThread(() -> pgLoading.setVisibility(View.INVISIBLE));
}).start();
}
无法阻止主线程。这将导致整个渲染停止。这就是为什么只有在超时后才能看到结果。
这些操作应该在其他线程中处理。如果使用Java可以使用Runnable,但应考虑使用静态编程语言来使用协程。
例如:
pgLoading.setVisibility(VISIBLE);
new Thread() {
public void run() {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
pgLoading.setVisibility(INVISIBLE);
}
});
}
}
}.start();
通过调用Hibernate方法,您使UI线程Hibernate1秒钟,在此期间,UI线程上不会发生任何事情,因此您看不到ProgressBar。相反,您应该使用TimerWG
等待这一秒,然后关闭ProgressBar。查看如何使用TimerWork的链接。
我有一个包含BottomNavigationView的活动,这个bottomnav帮助该活动显示三个片段。这些片段加载良好,我使用AsyncTask来完成每一个繁重的操作,而在UI线程中,我会显示一个ProgressBar,直到所有内容都加载<我的片段有一个奇怪的行为:第一次加载片段时,实际显示它需要一些时间,而不是用进度条立即显示<这件事只有第一次发生,而且只发生在这个片段中<片段代码仅包含以下
问题内容: 我有一个进度div,其绝对位置位于网页顶部。 当我单击Ajax.ActionLink时,有时在请求/响应时间不多时,它会在顶部闪烁。 如何添加延迟,以便进度条在500ms内不显示? 谢谢 这是工作代码 AjaxOptions 问题答案: 您将需要自己处理。 您可以通过指定(show it)和(hide it)事件的函数来处理加载元素的显示/隐藏,而不是指定a 。 有关的更多详细信息,请
我想隐藏的动作条,当一个activity启动,当用户触摸屏幕显示几秒钟,然后再次隐藏。 下面是我想要的,但我想知道是否有更好的方法(忽略一些样式问题:魔术数字、逻辑重复等)。 我用的是ActionBarSherlock。 谢谢
问题内容: 我想知道一段时间后如何调用函数。我已经尝试过time.sleep(),但是这会暂停整个脚本。我希望脚本继续进行,但是??? secs之后调用一个函数并同时运行其他脚本 问题答案: 看一看。它在新线程中运行您的函数。
本文向大家介绍8085中产生时间延迟,包括了8085中产生时间延迟的使用技巧和注意事项,需要的朋友参考一下 在本节中,我们将看到如何使用8085程序生成时间延迟。该延迟将在不同的地方使用,以模拟时钟,计数器或其他区域。 当执行延迟子例程时,微处理器不执行其他任务。对于延迟,我们使用指令执行时间。在循环中执行一些指令,会产生延迟。有一些产生延迟的方法。这些方法如下。 使用NOP指令 使用8位寄存器作