Java 如何从其他类报告进度
我有一个从网站下载信息的课程。 目前我正在使用AsyncTask来获取它,因此ui将保持响应性 我知道如何使用publishProgress和onProgessUpdate更新GUI,但是如果我在不同的类中有一个大方法(或函数),该怎么办 使用代码更容易显示:Java 如何从其他类报告进度,java,android,android-asynctask,Java,Android,Android Asynctask,我有一个从网站下载信息的课程。 目前我正在使用AsyncTask来获取它,因此ui将保持响应性 我知道如何使用publishProgress和onProgessUpdate更新GUI,但是如果我在不同的类中有一个大方法(或函数),该怎么办 使用代码更容易显示: @Override protected ArrayList<Card> doInBackground(Void... voids) { Looper.prepare(); publishProgress("Cr
@Override
protected ArrayList<Card> doInBackground(Void... voids)
{
Looper.prepare();
publishProgress("Creating object");
SomeClass someClass = new SomeClass();
publishProgress("Performing a long operation");
ArrayList<Card> = someClass.getCards();//This method takes a long while. I would like to call the "publishProgress" method from the "someClass".
return athopGetter.getCards();
}
@覆盖
受保护的ArrayList doInBackground(无效…无效)
{
Looper.prepare();
publishProgress(“创建对象”);
SomeClass SomeClass=新的SomeClass();
出版进度(“执行长期操作”);
ArrayList=someClass.getCards();//此方法需要很长时间。我想从“someClass”调用“publishProgress”方法。
返回athopGetter.getCards();
}
您可以将任务引用传递给“someClass”,因为publishProgress是受最终保护的,所以您需要实现自己的发布方法,该方法只需调用publishProgress
task = new AsyncTask<...>() {
...
public void myPublish(Progress... values) {
publishProgress(values);
}
};
task=newasynctask(){
...
public void myPublish(进度…值){
出版进度(价值观);
}
};
或者您可以使用反射直接调用publishProgress。谢谢。那正是我想要的