- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在下面的函数中,我使用 findInBackground
从 Parse 获取数据。由于此函数在后台运行,我如何在数据准备好时通知主 UI 线程,以便我可以隐藏进度加载微调器并实际显示此数据?
使用 findInBackground
而不是 find()
的原因是因为我不希望主 UI 在从 Parse Server 获取数据时卡住。
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;
}
最佳答案
我想你误会了。网络调用 findInBackground
是在后台完成的,是的。但是 done
是在主线程上调用的。因此,您对 ui 所做的任何更改都可以在那里毫无问题地完成。我一直在我的 done
回调中关闭微调器。
查看 Parse.com 源代码; findInBackground()
调用这一行:
ParseTaskUtils.callbackOnMainThreadAsync(task, callback);
这告诉我回调在主线程上。可以肯定的是,我查看了 ParseTaskUtils
。果然,在 ~107 行,它切换回主线程以通知结果。
关于android - 如何从主 UI 线程检测到 Parse 的 query.findInBackground 已完成并返回数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689365/
数据库上的查找未完成,因此从未调用 FindCallback.done() 方法,没有错误,什么都没有,只是没有被调用。这是代码 ParseQuery pq = ParseQuery.getQuer
这是我的代码 fragment ,对名称进行了少量修改。 String[] items; ArrayListtempListItems; public void initList() {
我下面的函数应该返回来自 parse.com 的所有学生,在一段代码(下面注释)中,列表完全填充了正确的结果,但是在函数末尾,列表是空的。我不太明白这里发生了什么,非常感谢任何帮助。 public L
我使用 Parse.com 作为我的应用程序的后端。 Parse 的本地数据库看起来非常好用,所以我决定使用它。 我想创建一个包含名称和电话号码的数据库。这很简单,只需创建一个 new ParseOb
我一直在编写一个 Android 应用程序,使用 parse-server 作为我的应用程序的后端服务。当我查询一个类以从服务器获取对象时,我使用 ParseQuery.findInBackgroun
在下面的函数中,我使用 findInBackground 从 Parse 获取数据。由于此函数在后台运行,我如何在数据准备好时通知主 UI 线程,以便我可以隐藏进度加载微调器并实际显示此数据? 使用
我正在检查我从 iOS 移植的 Android 应用程序,并试图找出我收到的任何警告的原因,并使我的代码符合 Android Studio 的 lint。 到目前为止,大多数“问题”都非常容易修复,但
我是一名优秀的程序员,十分优秀!