ProgressDialog没有在android中显示

时间:2016-11-18 13:22:58

标签: android multithreading progressdialog

我知道这很容易做到,但是我试图从这里拿一些例子而不是显示progressDialog。我想要做的是在单击按钮时显示ProgressDialog并在任务完成时完成:

提前致谢!

 buttonStartOCR.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            progress = ProgressDialog.show(SimpleAndroidORCActivity.this, "Processing", "Please wait...", true);
                new Thread(new Runnable() {
                    public void run() {
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                onPhotoTaken();
                            }
                        });
                    };
                }).start();
            progress.dismiss();
        }
    });

3 个答案:

答案 0 :(得分:1)

你的ProgressDialog正在展示,但在演出结束后立即被解雇。将你的dismiss置于runnable的run方法中。

这样:

 buttonStartOCR.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        progress = ProgressDialog.show(SimpleAndroidORCActivity.this, "Processing", "Please wait...", true);
            new Thread(new Runnable() {
                public void run() {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            onPhotoTaken();
                            progress.dismiss();
                        }
                    });
                };
            }).start();

    }
});

答案 1 :(得分:0)

一个线程是一个独立的进程,它在后台运行你的进度条显示并立即解雇,调用progress.dismiss();在onPhotoTaken()

之后的run()中

答案 2 :(得分:0)

在下面的代码中,你关闭对话框,因为它也开始运行线程,所以解雇对话框不能等待线程内部的任务。

buttonStartOCR.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                progress = ProgressDialog.show(SimpleAndroidORCActivity.this, "Processing", "Please wait...", true);
                    new Thread(new Runnable() {
                        public void run() {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    onPhotoTaken();
                                    progress.dismiss();
                                }
                            });
                        };
                    }).start();

            }
        });

onPhotoTaken(): - 应该返回任何值,以便我们可以解除对话。

并在主要文件中删除对话框