3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
為什么不調(diào)用處理該值的方法?
public class MyClass extends Activity {
private class myTask extends AsyncTask<Void, Void, Void> {
//initiate vars
public myTask() {
super();
//my params here
}
protected Void doInBackground(Void... params) {
//do stuff
return null;
}
@Override
protected void onPostExecute(Void result) {
//do stuff
myMethod(myValue);
}
}
private myHandledValueType myMethod(Value myValue) {
//handle value
return myHandledValueType;
}
}

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
那onPostExecute()是為了什么 它在UI線程上運(yùn)行,您可以將結(jié)果從那里傳遞到屏幕(或其他需要的位置)。在最終結(jié)果可用之前,它不會(huì)被調(diào)用。如果您想獲得中間結(jié)果,請(qǐng)查看onProgressUpdate()

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
最簡(jiǎn)單的方法是將調(diào)用對(duì)象傳遞給異步任務(wù)(如果愿意,可以構(gòu)造它):
public class AsyncGetUserImagesTask extends AsyncTask<Void, Void, Void> {
private MyImagesPagerFragment mimagesPagerFragment;
private ArrayList<ImageData> mImages = new ArrayList<ImageData>();
public AsyncGetUserImagesTask(MyImagesPagerFragment imagesPagerFragment) {
this.mimagesPagerFragment = imagesPagerFragment;
}
@Override
public Void doInBackground(Void... records) {
// do work here
return null;
}
@Override
protected void onPostExecute(Void result) {
mimagesPagerFragment.updateAdapter(mImages);
}
}
并在調(diào)用類(您的活動(dòng)或片段)中執(zhí)行任務(wù):
public class MyImagesPagerFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
AsyncGetUserImagesTask mGetImagesTask = new AsyncGetUserImagesTask(this);
mGetImagesTask.execute();
}
然后onPostExecuteMethod將在您喜歡的原始類上調(diào)用任何方法,例如:
public void updateAdapter(List<ImageData> images) {
mImageAdapter.setImages(images);
mImageAdapter.notifyDataSetChanged();
}
}
添加回答
舉報(bào)