android progressdialog没有出现

时间:2013-07-31 09:14:58

标签: android progressdialog

我发布了这个问题,因为我无法弄清楚是什么原因导致了ProgressDialog没有出现。我找了所有类似的问题,但没有一个对我很有帮助 我在辅助类

中有这个方法
private static ProgressDialog progressDialog;
public static void ShowProgressDialog(Context context, String title, String message, boolean cancellable) {
    try {
        if (progressDialog == null)
            progressDialog = ProgressDialog.show(context, title, message);
        else
            LogHelper.WriteLogInfo("ALERT_DIALOG", "progress dialog already exists");
    } catch (Exception e) {
        LogHelper.WriteLogError("error showing progress dialog", e);
    }
}

我以这种方式从我的活动中调用它

DialogHelper.ShowProgressDialog(this, "title","progress bar  text",false);
new MyAsyncTask().execute("inputString");

一切都运行良好,但有时不会出现ProgressDialog,并且没有应该由catch块中的LogHelper.WriteLogError写入的错误日志。

有没有人知道造成这种行为的原因是什么?

4 个答案:

答案 0 :(得分:0)

你应该替换

DialogHelper.ShowProgressDialog(this, "progress bar  text");
new MyAsyncTask.execute("inputString")

DialogHelper.ShowProgressDialog(getapplicationcontext(), "progress bar Title" , "Message",false);
new MyAsyncTask.execute("inputString")

答案 1 :(得分:0)

ProgressDialog progress= new ProgressDialog(this);

progress.setTitle("Your Text");

progress.show();

MyTask tak=new MyTask();

task.execute();

答案 2 :(得分:0)

请注意,AsyncTask有一个方法

@Override
protected void onPreExecute()
{
    super.onPreExecute();
    // Show ProgressDialog if desired
    if (doUseProgressDialog)
    {
        // Note that all these parameters are passed to the containing class in the constructor
        progressDialog = new ProgressDialog(activity);
        progressDialog.setMessage(progressDialogMessage);
        progressDialog.setTitle(progressDialogTitle);
        progressDialog.setProgressStyle(progressDialogStyle);
        progressDialog.show();
    }
}

允许UI修改(例如显示progressDialog)。此外,您可以在

中对UI进行更新
protected void onProgressUpdate(Long... progress)

我建议您根据需要为AsyncTask创建子类,并在构造函数中传递所需的标题,消息等。

答案 3 :(得分:0)

请尝试这种方式

progressDialog = new ProgressDialog(this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("Message");
progressDialog.setCancelable(false);
progressDialog.show();
Thread mThread = new Thread() {
    @Override
    public void run() {
       /*Your Code*/
        progressDialog.dismiss();
    }
};
mThread.start();