0

parse-serverをアプリケーションのサービスとしてバックエンドとして使用してAndroidアプリケーションを作成しています。私は私のサーバーからオブジェクトを取得するためのクラスを照会するとき、私はそれがParseQuery.findInBackground()を使用して、次のようにコールバックを受け取る行いますParse android APIでfindInBackground()を呼び出すと、どのスレッドにコールバックが返されますか

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

私の質問は、どのスレッド上で、私はdone()法上のコールバックを受け取るということです。それはまだfindInBackground()を呼び出すことによって起動される同じスレッドですか、それともfindInBackground()と呼ばれるスレッドですか?私はこれについて興味があるので、バックグラウンドで検索されたオブジェクトを使って何らかの処理をしたい場合は、それぞれのdo-in-backgroundメソッドを再度呼び出す必要があるか、または取得したコールバックがすでに別のスレッド私はまだバックグラウンドスレッドであると仮定して、synchronousメソッドを呼び出すことができます(例えば、ParseQuery.find()ParseQuery.findInBackground()の同期オプションです)。

答えて

1

コールバックメソッドは、findInBackgroundを呼び出すために使用したスレッドで実行されると思います。そのUIスレッドで、そこで実行するネットワークが増えている場合は、ほかのバックグラウンドスレッドを使用する必要があります。同期メソッドを呼び出すことで確認でき、(最近のデバイスで)NetworkOnMainThreadExceptionが得られるかどうかを確認できます。

+0

これはFoscoのhttps://twitter.com/newFosco/status/767766599499599872?cn=cmVwbHk%3Dの妥当性を確認したものです。みんな、ありがとう! – Swapnil

関連する問題