android: showing a progress dialog
I have looke开发者_运维技巧d at the Android API and other posts here on stackoverflow, but have not been able to figure this out.
My app downloads files to the sd card. I would like to pop a "loading..." dialog while the file is downloading and then have it disappear when the download is finished. This is what i came up with using the android API:
ProgressDialog pd = ProgressDialog.show(this,"","Loading. Please wait...",true);
//download file
pd.cancel();
however the dialog doesn't actually show. when i debug it, it claims that it is showing, but it is obviously not on the screen.
what can i do?
You have to run the download code into a separated Thread. The easy way is to use AsyncTask
Look also this article on how to use it
I have a somewhat similar scenario, more of a level loading pause while stuff is being setup for a phase of a game. I launch the dialog, start level loading in a thread which is passed the context and call this at the end of the thread:
mContext.runOnUiThread(new Runnable(){
public void run() {
mContext.mProgressDialog.dismiss();
}
});
I find the runOnUiThread() method extremely useful.
精彩评论