0

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

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

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

4

1 回答 1

1

我认为回调方法将在您用来调用的线程上执行findInBackground,所以如果那是 UI 线程并且您有更多的网络要做,您将需要使用其他后台线程。您可以通过调用同步方法进行验证,看看您是否获得了NetworkOnMainThreadException(在足够近的设备上)。

于 2016-08-22T16:41:28.900 回答