为什么AsyncTask的onProgressUpdate()<>接口永远不会被调用?

时间:2011-03-07 19:58:42

标签: android

永远不会调用onProgressUpdate(),你能告诉我为什么吗?

private class LoginMe extends AsyncTask<Context, Void, Boolean> {

    @Override
    protected Boolean doInBackground(Context... arg0) {
        doSomething();
        return true;
    }

    @Override
    protected void onProgressUpdate(Void... v) {
        super.onProgressUpdate(v);
        Log.d("Dev", "Im in onProgressUpdate()");
    }

    @Override
    protected void onPostExecute(Boolean result) {
        super.onPostExecute(result);
        if (result) {
            doOne();
        } else {
            doTwo();
        }
    }
}

1 个答案:

答案 0 :(得分:25)

您必须手动调用publishProgress内的doInBackground

  

doInBackground(Params ...),被调用   后台线程立即   在onPreExecute()完成后   执行。 ... 此步骤也可以使用   publishProgress(进度......)来   发布一个或多个进度单位。   这些值将在UI上发布   线程,在   onProgressUpdate(Progress ...)步骤。

http://developer.android.com/reference/android/os/AsyncTask.html