我不能让我的ProgressDialog出现,我不知道为什么?
守则:
public class Activity001 extends Activity implements OnClickListener
{
public void onClick(View view)
{
ProgressDialog progressDialog = ProgressDialog.show(Activity001.this, "", "wait ", true, false);
// Sending some files to server .. takes time .. - (method that take 1-2 minutes )
progressDialog.dismiss();
}
}
任何人都可以帮我一把吗?
答案 0 :(得分:2)
试试这个。,
在onCreate()
中执行此操作 Handler handler;
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 0) {
Pdialog.dismiss();
}
};
现在使用线程将文件上传到服务器。修改这段代码,
public class Activity001 extends Activity implements OnClickListener
{
public void onClick(View view)
{
ProgressDialog progressDialog = ProgressDialog.show(Activity001.this, "", "wait ", true, false);
Thread ProgressThread = new Thread() {
@Override
public void run() {
try {
// Sending some files to server .. take time .. - (method that take 1-2 minuts )
} catch(InterruptedException e) {
// do nothing
} finally {
handler.sendEmptyMessage(0);
}
}
};
ProgressThread.start();
}
}
修改强>
进度对话框是一个轻量级对象。它不优先于主线程中发生的其他任务。例如,当您调用进度对话框的show()后跟一个http进程或类似主线程中的进程时,它将不允许轻量级prgoress对话框优先。所以显然它只会出现在http进程的最后。
答案 1 :(得分:2)
相反,使用Thread实现后台任务的最佳方法是AsyncTask
,也称为Painless Threading in Android
。
由于这被称为无痛线程,因此您无需关注线程管理。
根据您的要求,执行以下操作: