为什么ProgressDialog并不总是在我的android应用程序中运行?
问题描述:
我已经做了一个图像下载线程从欲望网址下载图像。在那个线程上,我使用了一个进度对话框,但进度对话框在3或4秒后没有转动,看起来它被挂起。但后台工作是可以的。我的问题是,进度对话框没有变成什么?它看起来像什么? 我在开始位置使用此代码。为什么ProgressDialog并不总是在我的android应用程序中运行?
imageUploadhandler.postDelayed(runImageUpload, 500);
dialog = ProgressDialog.show(AllProductActivityPictGrid.this, "",
"Message...", true);
dialog.setCancelable(true);
答
尝试在下载完成后使用dialog.dismiss()。
请使用以下代码调用进度对话框。
ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Please Wait...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
After completion of your task call progressDialog.dismiss();
答
你的对话框挂起,因为如果您的实例在Handler
的Activity
,然后你邮寄到Handler
一切都将在UI线程上运行,而不是在后台线程。
做下载并在AsyncTask
中创建ProgressDialog
。
答
也许你应该看看AsyncTask
?
protected void onPreExecute() {
progressDialog=ProgressDialog.show(context,"Please Wait..","Retrieving data from device",false);
}
@Override
protected String doInBackground(String... params) {
//background stuff here
return "";
}
protected void onPostExecute(String result) {
progressDialog.dismiss();
Toast.makeText(context, "Finished", Toast.LENGTH_LONG).show();
}
你是什么意思转身? – 2012-07-27 06:20:57
接受你以前的问题的答案.. – Ronnie 2012-07-27 06:44:33