获取接口方法的返回值

时间:2016-03-22 22:58:49

标签: java android callback return-value

我已经实现了这个界面:

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方法中返回它?有办法还是我应该走另一条路?

0 个答案:

没有答案