AsyncTask没有onProgressUpdate Android

时间:2014-02-13 12:25:12

标签: android android-asynctask

似乎这个类不起作用,因为它从不发布进度。 onPostExecute确实有效。但是这个课程主要依赖于progressUpdate

class DoBackgroundStuff extends AsyncTask<String, Integer, String> {

    @Override
    protected String doInBackground(String... a) {

        String rawContactsDl;
        while(true) {

            if (isFinished == true) {
                backgroundStopped = true;
                break;
            }

            //DO SOME STUFF
            publishProgress(1);

            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return "done";
    }

    protected void onProgressUpdate(int progress) {
        Log.i("VERBOSE","onProgress " + progress);
        adapter.notifyDataSetChanged();
    }

    protected void onPostExecute(String result) {
        Log.i("VERBOSE","onPosts " + result);
        adapter.notifyDataSetChanged();
    }

}

2 个答案:

答案 0 :(得分:8)

你的onProgressUpdate看起来应该是这样的:

protected void onProgressUpdate (Integer... values)

始终使用@Override来捕捉此类错误

答案 1 :(得分:5)

onProgressUpdate()签名错误。它应该是

protected void onProgressUpdate(Integer... progress)