ProgressDialog不会在我的asynctask中显示onPreExecute吗?

时间:2011-08-01 00:23:51

标签: android progressdialog

我看了一些问题并且没有回答我的问题..

我有这个asyncTask ...

  private class LoadData extends AsyncTask<Void, Void, Void>{



    protected Void onPreExecute(Void...arg0){
        super.onPreExecute();

        ProgressDialog dialog = ProgressDialog.show(shoppingClass.this, "", 
                "Loading. Please wait...", true);
        dialog.show();

        return null;

    }
    @Override
    protected Void doInBackground(Void... params) {
        item = we.getText().toString();
        getUserPreference();
        itemLookup.loadUrl(url);
        return null;
    }
    @Override
    protected void onPostExecute(Void notused){
        itemLookup.setVisibility(View.VISIBLE);

    }

}

问题是progessDialog没有出现?我不知道为什么......我正在根据文件写一切。

3 个答案:

答案 0 :(得分:1)

您没有正确覆盖该方法。将onExreExecute更改为:

@Override
protected void onPreExecute() {
    super.onPreExecute();

     ProgressDialog dialog = ProgressDialog.show(shoppingClass.this, "", 
            "Loading. Please wait...", true);
     dialog.show();
}

答案 1 :(得分:0)

可能只是因为doinbackground完成得太快而无法看到对话框。

答案 2 :(得分:0)

检查shoppingClass.this是否具有UI上下文。此外,您不必在其上调用两次.show(),并且您不必返回null作为其void(小写)。