Is there a standard "Loading, please wait" dialog I can use in Android development, when I invoke some AsyncTask (downloading some data from remote service 开发者_开发知识库for example)?
You mean something like an indeterminate ProgressDialog?
Edit: i.e.
ProgressDialog dialog = ProgressDialog.show(context, "Loading", "Please wait...", true);
then call dialog.dismiss()
when done.
If you implement runnable as well as extending Activity then you could handle the code like this...
private ProgressDialog pDialog;
public void downloadData() {
pDialog = ProgressDialog.show(this, "Downloading Data..", "Please wait", true,false);
Thread thread = new Thread(this);
thread.start();
}
public void run() {
// add downloading code here
handler.sendEmptyMessage(0);
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
pDialog().dismiss();
// handle the result here
}
};
It's worth mentioning that you can set the content view of the progress dialog so you can display a custom message / image:)
pDialog.setContentView(R.layout.X);
Mirko is basically correct, however there are two things to note:
ProgressDialog.show()
is a shortcut that automatically creates a dialog. Unlike other dialogs, it should NOT be used inonCreateDialog()
, as it will cause errors in Android 1.5.There are some further issues with AsyncTask + ProgressDialog + screen orientation changes that you should be aware of - check this out.
精彩评论