Android,进度条在方法执行之前不显示?

时间:2015-08-26 19:07:32

标签: android android-asynctask android-progressbar

在调用方法View.GONE之前,我有一个进度条,我从View.VISIBLE更改为writeFile()

这样的事情:

onButtonPress(){
    mProgressBar.setVisibility(View.VISIBLE);
    writeFile();
}

方法writeFile()可能需要几秒钟(大量数据解析),但之后需要用户采取其他操作,因此不会在后台线程上执行。这是为了避免用户在应用程序中的其他位置导航,然后为他们认为已完成的操作提供弹出窗口或重定向。

我的问题是,在writeFile()方法完成之前,进度条不显示,然后在用户重定向到其他地方之前短暂弹出一瞬间。

如果我注释掉方法调用,那么ProgressBar会立即显示并无限旋转,所以我知道条形图正常工作。

如何确保进度条弹出 FIRST ,然后调用writeFile()方法?

提前致谢。

此外:

我没有很多经验(完全没有!)与asynctasks,所以我不确定这是否是我需要采取的路线。我正在寻找的行为是当用户按下按钮时弹出的进度条,并保留在屏幕上直到方法完成。我不希望用户在此期间浏览应用程序。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码来检查progressBar是否可见

new Thread(new Runnable() {
    public void run() {
        writeFile();
    }
}).start();