在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();
答案 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线程上执行操作。
祝你好运!