如何在doInBackground()

时间:2015-05-30 10:55:48

标签: android android-asynctask progress

我正在使用AsyncTask类中的doInBackground()方法内部的函数调用 如何从功能中调用它。

请帮助。

我正在使用

// function name 
private void getFilteredHeaderData(FilterHeaderTask obj) {

    obj.onProgressUpdate("Updated Progress data ... ");


}

其中FilterHeaderTask是AsyncTask类名

在遇到obj.onProgressUpdate()行后,应用程序崩溃了;

来自AsyncTask的我的doInBackground()函数

protected String doInBackground(String... urls) {   

            getFilteredHeaderData(this);


            return null;
        }

2 个答案:

答案 0 :(得分:0)

替换

obj.onProgressUpdate("Updated Progress data ... ");

publishProgress("Updated progress data .......");

已更新:

protected final void publishProgress(Progress... values){}

publishProgress()具有受保护的访问权限,因此您无法从其他类调用。

答案 1 :(得分:0)

我找到了一个功能齐全的解决方案。 我用pdialog.setProgress(x);直接在被调用的方法中。

doInBackground中该方法的调用格式如下: int xx = class.method(some params ...,pdialog); //其中pdialog是在主线程中创建的ProgressDialog(pdialog = new ProgressDialog(this);)