在Parse android API

时间:2016-08-22 15:23:27

标签: java android multithreading parse-server parse-android-sdk

我一直在使用parse-server编写一个Android应用程序作为后端作为我的应用程序的服务。当我查询一个类来从我的服务器获取对象时,我使用ParseQuery.findInBackground()然后接收这样的回调:

query.findInBackground(new FindCallback<Shruti>() {
            @Override
            public void done(List<Shruti> objects, ParseException e) {
            ...................
            ...................
       });

我的问题是我在哪个线程上收到done()方法的回调。它仍然是通过调用findInBackground()启动的相同线程,还是我调用findInBackground()的线程?我对此感到好奇,因为如果我想在后台对检索到的对象进行一些处理,我是否需要再次调用相应的do-in-back方法,或者因为我得到的回调已经在不同的线程中,我可以只调用synchronous方法(例如,ParseQuery.find()ParseQuery.findInBackground()的同步选项),假设我仍然在后台线程中?

1 个答案:

答案 0 :(得分:1)

我认为回调方法将在您用来调用findInBackground的线程上执行,因此,如果这是UI线程并且您有更多网络可以执行,那么您需要使用其他背景线程。您可以通过调用同步方法进行验证,看看是否得到NetworkOnMainThreadException(在最近的设备上)。