1

在 Android 应用程序中,我试图在单击按钮时使 ProgressBar 可见,执行一些过程,然后再次使该栏不可见。我的按钮的 onClick 方法的总体概述如下所示:

ProgressBar bar = (ProgressBar)findViewById(R.id.prog_bar);
bar.setVisibility(View.VISIBLE);

...做一些事情...

bar.setVisibility(View.INVISIBLE);

但是,当我运行代码时,中间的过程完成时,ProgressBar 永远不会出现。有任何想法吗?

4

1 回答 1

3

OnClick 在主线程上调用。在您的 OnClick 方法返回之前,您对 ProgressBar 所做的更改不会有任何可见的效果。到那时,您已经完成了所有工作并再次将其隐藏。

将您的工作移至后台线程。这不仅会使您的应用程序更具响应性,而且还会出现进度条。(请注意,当您的工作完成时,您必须从主线程而不是工作线程中隐藏进度条。通常,您向 Handler 发布消息以实现此目的。)

于 2013-06-26T06:14:35.430 回答