在我的应用程序中,我试图显示一个进度条,表示函数完成执行所需的时间,并在函数完成执行后将其解除...
我的代码定义如下:
protected Dialog onCreateDialog(int id) {
switch (id) {
case PROCESS: {
ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle("Indeterminate");
dialog.setMessage("Please wait while loading...");
dialog.setIndeterminate(true);
dialog.setCancelable(true);
return dialog;
}
}
return null;
}
showDialog(PROCESS);
doFunction();
dismissDialog(PROCESS);
由于某种原因,没有显示processdialog ......
有人可以帮我解决这个问题.... 还有其他办法吗?
谢谢:)
答案 0 :(得分:2)
由于您的函数需要一些时间来处理,因此请使用异步任务
new AsyncTask<Void, Void, Void>() {
@Override
protected void onPreExecute()
{
pd = ProgressDialog.show(getApplicationContext(),"", "Sending Image ...", true);
Log.d(TAG, "onPreExecute()");
}
@Override
protected Void doInBackground(Void... params)
{
doFunction();
return null;
}
@Override
protected void onPostExecute(Void res)
{
Log.d(TAG, "onPostExecute()");
pd.dismiss();
}
}.execute();
其次将其设置为不确定意味着您只会看到一个圆圈。
您应该将progress style设置为STYLE_HORIZONTAL