开发者

AsyncTask onPostExecute not being called

开发者 https://www.devze.com 2023-03-14 16:27 出处:网络
The project I\'m working on is slightly more complicated but I made this simple test to try to track down what was wrong with my code.The progress dialog never dismisses.I had it at one point where th

The project I'm working on is slightly more complicated but I made this simple test to try to track down what was wrong with my code. The progress dialog never dismisses. I had it at one point where they weren't returning null. '

public class SyncTestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        new mTask(this).execute();
    }

    public class mTask extends AsyncTask<Void, Void, Void> {

        Context mContext;

        ProgressDialog progressDialog;

        public mTask(Context aContext) {
            mContext = aContext;
        }

        @Override
        public void onPreExecute() {

            progressDialog = new ProgressDialog(mContext);
            progressDialog.setMessage("New...");
            progressDialog.show();
        }

        @Override
        public Void doI开发者_开发技巧nBackground(Void... params) {
            return null;
        }  

        public Void onPostExecute(Void... params) {
            progressDialog.dismiss();
            return null;


        }
    }

}


The parameters are wrong, use this:

    @Override
    protected void onPostExecute(Void result) {
        progressDialog.dismiss();
        return;

    }


I am agree with Cesar and Shailendra answers, but still let me make little improvement over it:

    @Override
    protected void onPostExecute(Void result) {

      if(progressDialog.isShowing())
      {
        progressDialog.dismiss();
      }
        return;

    }


Missing @Override notation before onPostExecute. Also return null is not required.

0

精彩评论

暂无评论...
验证码 换一张
取 消