一般在使用api时,如果想要将listener中获取的结果作为返回值返回出来应该如何处理。
private void query() {
    BmobQuery<Category> bmobQuery = new BmobQuery<>();
    bmobQuery.getObject(mObjectId, new QueryListener<Category>() {
        @Override
        public void done(Category category, BmobException e) {
            if (e == null) {
                Snackbar.make(mBtnQuery, "查询成功:" + category.getName(), Snackbar.LENGTH_LONG).show();
            } else {
                Log.e("BMOB", e.toString());
                Snackbar.make(mBtnQuery, e.getMessage(), Snackbar.LENGTH_LONG).show();
            }
        }
    });
}

解决方案 »

  1.   

    不知道你具体需要返回哪个类型的数据,以下简单给个示例:private Category query() {
        BmobQuery<Category> bmobQuery = new BmobQuery<>();
        bmobQuery.getObject(mObjectId, new QueryListener<Category>() {
            @Override
            public void done(Category category, BmobException e) {
                if (e == null) {
                    Snackbar.make(mBtnQuery, "查询成功:" + category.getName(), Snackbar.LENGTH_LONG).show();
                } else {
                    Log.e("BMOB", e.toString());
                    Snackbar.make(mBtnQuery, e.getMessage(), Snackbar.LENGTH_LONG).show();
                }
                return category;
            }
        });
    }