Я использую AsyncTask для выполнения длительного процесса.
Я не хочу размещать свой длинный код процесса непосредственно внутри doInBackground. Вместо этого мой длинный код процесса находится в другом классе, который я вызываю в doInBackground.
Я хотел бы иметь возможность вызывать publishProgress внутри функции longProcess. В С++ я бы передал указатель обратного вызова publishProgress для моей функции longProcess.
Как это сделать в java?
ИЗМЕНИТЬ:
Мой длинный код процесса:
public class MyLongProcessClass
{
public static void mylongProcess(File filetoRead)
{
// some code...
// here I would like to call publishProgress
// some code...
}
}
Мой код AsyncTask:
private class ReadFileTask extends AsyncTask<File, Void, Boolean>
{
ProgressDialog taskProgress;
@Override
protected Boolean doInBackground(File... configFile)
{
MyLongProcessClass.mylongProcess(configFile[0]);
return true;
}
}
ИЗМЕНИТЬ № 2 Метод длинных процессов также может быть нестационарным и называется так:
MyLongProcessClass fileReader = new MyLongProcessClass();
fileReader.mylongProcess(configFile[0]);
Но это не меняет мою проблему.