当我按下屏幕上的按钮时,屏幕保持冻结状态,直到解锁后才会显示进度条

时间:2015-07-16 18:47:25

标签: android

我想在将文件从一个位置复制到另一个位置(大)时显示进度条,但是当单击按下选择按钮时,在操作结束(复制)之前不会显示目录。有问题的按钮显示在列表视图上方,单击时想要执行操作并隐藏。你知道它正在发生吗?提前谢谢。

    final Button button = (Button) view.findViewById(R.id.buttonDir);
    button.getBackground().setAlpha(230);
    button.setVisibility(View.VISIBLE);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            button.setVisibility(View.GONE);

            progress = new ProgressDialog(v.getContext());
            progress.setMessage(type);
            progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            progress.setIndeterminate(true);
            progress.setCancelable(true);
            progress.setProgress(0);
            progress.setMax(1);
            progress.show();

            Thread t = new Thread(new Runnable() {
                @Override
                public void run() {
                    res = null;
                    while (res == null)
                        res = // return string

                    manejador.post(new Runnable() {
                        @Override
                        public void run() {
                            // progress.dismiss();
                        }
                    });
                }
            });

            t.start();
            try {
                t.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            if (res.equals("Ok"))
                updatedListView();

        }
    });

1 个答案:

答案 0 :(得分:1)

你正在调用join()来锁定你的线程,直到另一个结束。

您必须继续执行并在任务完成时等待消息发布为异步。