Android AsyncTask onPostExecute 没有被触发

Android AsyncTask onPostExecute not Getting Triggered

对于 A​​syncTask,我通常会发生以下情况:

private class backgroundTask extends AsyncTask<Object, Object, Object> {
    protected void onPreExecute() {
        this.dialog.setMessage("Doing stuff...");
        this.dialog.show();
    }

    @Override
    protected Object[] doInBackground(Object... params) {
        // stuff happens here
        ResultsObject results = new ResultsObject(processValue);
        Object[] values = new Object[2];
        values[0] = "STATUS STRING";
        values[1] = results;
        return values;
    }

    protected void onPostExecute(Object... result) {
        Log.d("actions", "onPostExecute");
        if (this.dialog.isShowing())
            this.dialog.dismiss();
    }
}

但是,onPostExecute 似乎没有被触发。我可以验证在 doInBackground 发出 return 调用之前的所有内容都在执行。这一定是我在这里缺少的非常简单的东西,但我很难过。我在同一个项目中还有其他 AsyncTasks,我可以轻松地到达 onPostExecute.

您正在重载 onPostExecute 方法,但它没有被使用。使用这个:

@Override
protected void onPostExecute(Object o) {
    super.onPostExecute(o);
    Log.d("actions", "onPostExecute");
    if (this.dialog.isShowing())
        this.dialog.dismiss();
}

注意 @Override 注释,在这种时候非常有用。如果您尝试覆盖的方法不存在,它将显示错误。