我已经实现了这个界面:
public interface Callback {
public abstract ArrayList<String> done(ArrayList<Document> docs);
}
此方法也是:
public void getNearUsers(Callback callback, LatLng loc) {
new GetNearUsersASyncTask(callback, loc).execute();
}
public class GetNearUsersASyncTask extends AsyncTask<Void, Void, ArrayList<Document>>{
Callback callback;
LatLng loc;
ArrayList<Document> documents;
public GetNearUsersASyncTask(Callback callback, LatLng loc){
this.callback=callback;
this.loc=loc;
documents = new ArrayList<>();
}
@Override
protected ArrayList<Document> doInBackground(Void... params) {
...
return documents;
}
@Override
protected void onPostExecute(ArrayList<Document> docs) {
...
callback.done(docs);
super.onPostExecute(docs);
}
}
最后这一个:
public ArrayList<String> gotoRec() {
final ArrayList<String> finalPostIDs = new ArrayList<>();
serverRequest.getNearUsers(new Callback() {
@Override
public ArrayList<String> done(ArrayList<Document> users){
...
return finalPostIDs;
}
}, loc);
}
});
//return the finalPostIDs of override method;
}
我的问题是:
如何让finalPostID返回Callback接口的ArrayList以在gotoRec方法中返回它?有办法还是我应该走另一条路?