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)?
+5
A:
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.
Mirko Nasato
2009-12-30 16:52:58
+3
A:
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.
Daniel Lew
2009-12-30 17:26:24
thanks for list of things to watch out! and by the way, cute Braid icon you have there :)
kape123
2009-12-30 17:56:06
+2
A:
If you implement runnable as well as extending Activity then you could handle the code like this...
private pDialog ProgressDialog;
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);
Ally
2009-12-30 17:35:10