java - Parse.com 查询 findInBackground 不返回任何数据

标签 java android parse-platform

我下面的函数应该返回来自 parse.com 的所有学生,在一段代码(下面注释)中,列表完全填充了正确的结果,但是在函数末尾,列表是空的。我不太明白这里发生了什么,非常感谢任何帮助。

public List<Student> getAllStudents() {
    final List<Student> studentList = new ArrayList<Student>();
    ParseQuery<ParseObject> query = ParseQuery.getQuery("Student");
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> list, ParseException e) {
            if (e == null) {
                for (ParseObject o : list) {
                    Student s = new Student();
                    s.setObjectId(o.getObjectId());
                    s.setFirstName(o.getString("FirstName"));
                    s.setSurname(o.getString("Surname"));
                    s.setDOB(o.getString("DOB"));
                    s.setInstructor(o.getBoolean("Instructor"));
                    studentList.add(s);
                }
                // studentList is full here
            } else {

            }
            // studentList is full here too
        }

    });
    // studentList is empty here
    return studentList;
}

最佳答案

根据 https://parse.com/docs/android/api/com/parse/ParseQuery.html#findInBackground(com.parse.FindCallback) : public void findInBackground(FindCallback回调)
在后台线程中从服务器检索满足此查询的 ParseObject 列表。这比使用 find() 更好,除非您的代码已经在后台线程中运行。
因此,如果您想在方法中得到结果,请使用 find 或在 FindCallback 完成工作时添加一些通知。

关于java - Parse.com 查询 findInBackground 不返回任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25411547/

相关文章:

java - 替换JSP中的HTML特殊字符

java - 如何在 Linux 的 Windows 子系统上安装 JavaFX

java - hibernate - 运行时过滤关系

java - 在 Intent 启动时清除 Activity 堆栈

ios - 使用 Cloud Code Parse.com iOS 删除 PFUser

ios - 解析通知不适用于 AdHoc 配置文件

java - Spring MVC : Dynamic 404 page

android - Facebook + 安卓 : Only fullscreen opaque activities can request orientation

android - GPS 三星盖乐世 s2

ios - Swift - 解析检查 PFFile 是否被缓存