在ProgressDialog运行时运行Toast

时间:2012-08-09 16:53:02

标签: android progressdialog toast

在ProgressDialog运行时是否可以显示Toast?如果是,有一些关于如何做的例子吗?

感谢。

我当前的代码无效:

final ProgressDialog pd = ProgressDialog.show(
                        BotonesServicio.this, "Medidas",
                        "Comprobando datos");
                new Thread(new Runnable() {
                    public void run() {
                    Toast.makeText(FacturasIFirmar.this,
                        "Trying to show toast", Toast.LENGTH_LONG)
                           .show();

                        pd.dismiss();
                    }
                }).start();

1 个答案:

答案 0 :(得分:2)

ProgressDialog“冻结”线程,因此所有其他操作必须在单独的线程中执行。你必须在UI线程上创建吐司。

尝试这样的事情:

    ProgressDialog dialog = new ProgressDialog(context);
    final Toast toast = Toast.makeText(context, "text", Toast.LENGTH_LONG);
    Thread thread = new Thread( new Runnable() {

        public void run() {
            //Calculations here
            try {

                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            toast.show();
        }

    });
    thread.start();
    dialog.show();

如果要与UI线程通信,则应使用AsyncTask或常规线程将消息发送到处理程序,处理程序在UI线程上执行操作。

祝你好运!