Javaでの複数の非同期リクエスト処理

Le_Enot

私はいくつかのサイトAPIを使用するAndroidアプリを書いています。このサイトは、このAPIを処理するための一種のSDKを提供します。私はそれを使ってサイトにいくつかのリクエストをします。
したがって、リクエストを行うには、次のようにする必要があります。

VKRequestListener listener = new VKRequestListener(){
    @Override
    public void onComplete(VKResponse response){
      // do smth when response is complete
    }
}
VKRequest vkRequest = new VKRequest("request", "parameters");
vkRequest.executeWithListener(listener);

これlistenerは非同期で実行されるため、単一のリクエストを行うと、すべてうまくいきますonComplete。メソッド内で処理できます。しかし、複数のリクエストを行う必要がある場合はどうすればよいですか?さらに、次の各リクエストは前の応答に依存しますか?私には2つの方法しかありませんが、どちらもひどいように見え
ます。1 。メソッドで次の各要求を行いonCompleteます。これは、入れ子になりすぎて柔軟性がない方法のようです。
2. ある種の同期操作を行います。メインスレッドが要求を実行した後、onComplete実行されたかどうかを何らかの方法で確認し(ところで、どのように?ある種のフラグオブジェクトを使用しますか?)、実行されない場合は、Thread.sleep(1000)応答が返されるまでこれを繰り返してから、別の応答を行います。
それで、複数の非同期リクエストを処理する「通常の」方法があるかどうか教えてください。

Le_Enot

私は簡単な解決策についてたくさん考えていました、そして私はこれをしました:

class RequestFlags{
    int requestCount;
    Params params;
};
private final RequestFlags requestFlags;

public requestWrapper(RequestFlags rf){
    VKRequestListener listener = new VKRequestListener(){
        @Override
        public void onComplete(VKResponse response){
        // do smth when response is complete
             if(requestFlags.requestCount != 0) {
                 requestFlags.requestCount--;
                 requestFlags.params = doSmth(response);
                 requestWrapper(requestFlags);
             } else{
                 // we finished - do smth on finish
             }
        }
    }
    Params someParams;
    switch(requestFlags.params){
        case param1: someParams = doSmthElse();
        break;
        case param2: someParams = null;
        break;
        // etc, etc...
    }
    VKRequest vkRequest = new VKRequest("request", someParams);
    vkRequest.executeWithListener(listener);        
}

したがって、このリクエストラッパーは、すべてのリクエストが一貫して慎重に処理されるまで、再帰的に自分自身を呼び出します...これが誰かに役立つことを願っています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaでの複数の非同期リクエスト処理

分類Dev

Java webappでのリクエストの非同期処理

分類Dev

nodejs非同期呼び出し、URLで複数のリクエストを処理する方法

分類Dev

複数の非同期リクエスト

分類Dev

Firestoreで複数の依存非同期クエリを処理する方法

分類Dev

複数の非同期 DirectionsService.route リクエストを処理する Google Maps V3

分類Dev

非同期の使用:複数のAJAXリクエストでtrue

分類Dev

非同期リクエスト後の条件の処理方法

分類Dev

複数のクロージャ/ APIリクエストを迅速に実行する関数での非同期完了処理

分類Dev

asyncioを使用した関数リクエストの非同期処理

分類Dev

非同期のHTTPリクエスト処理

分類Dev

PythonDjango非同期リクエストの処理

分類Dev

非同期処理のリクエストが機能しない

分類Dev

Node.jsPOSTリクエスト応答の非同期処理

分類Dev

複数の非同期APIリクエストを送信し、レスポンスを並行して処理する適切な方法は何ですか?

分類Dev

複数の非同期リクエストを同期する

分類Dev

複数のPOSTリクエストの非同期の問題

分類Dev

Flaskで複数のリクエストを処理する

分類Dev

Pythontornadoで複数の着信リクエストを処理する

分類Dev

複数の応答golangの非同期リクエスト

分類Dev

Promises経由で返されるFirebaseの複数の非同期リクエスト

分類Dev

非同期処理のリクエストをモックします

分類Dev

サーブレットによるリクエストの非同期処理

分類Dev

Swiftで非同期httpリクエストを処理する方法

分類Dev

Resttemplateを使用して複数の非同期HTTPリクエスト

分類Dev

複数の非同期リクエストを同時に

分類Dev

非同期処理の実行中にhttpリクエストを保持する

分類Dev

Reactで複数の非同期待機リクエストを待機する方法

分類Dev

Javaの非同期HTTPリクエスト

Related 関連記事

  1. 1

    Javaでの複数の非同期リクエスト処理

  2. 2

    Java webappでのリクエストの非同期処理

  3. 3

    nodejs非同期呼び出し、URLで複数のリクエストを処理する方法

  4. 4

    複数の非同期リクエスト

  5. 5

    Firestoreで複数の依存非同期クエリを処理する方法

  6. 6

    複数の非同期 DirectionsService.route リクエストを処理する Google Maps V3

  7. 7

    非同期の使用:複数のAJAXリクエストでtrue

  8. 8

    非同期リクエスト後の条件の処理方法

  9. 9

    複数のクロージャ/ APIリクエストを迅速に実行する関数での非同期完了処理

  10. 10

    asyncioを使用した関数リクエストの非同期処理

  11. 11

    非同期のHTTPリクエスト処理

  12. 12

    PythonDjango非同期リクエストの処理

  13. 13

    非同期処理のリクエストが機能しない

  14. 14

    Node.jsPOSTリクエスト応答の非同期処理

  15. 15

    複数の非同期APIリクエストを送信し、レスポンスを並行して処理する適切な方法は何ですか?

  16. 16

    複数の非同期リクエストを同期する

  17. 17

    複数のPOSTリクエストの非同期の問題

  18. 18

    Flaskで複数のリクエストを処理する

  19. 19

    Pythontornadoで複数の着信リクエストを処理する

  20. 20

    複数の応答golangの非同期リクエスト

  21. 21

    Promises経由で返されるFirebaseの複数の非同期リクエスト

  22. 22

    非同期処理のリクエストをモックします

  23. 23

    サーブレットによるリクエストの非同期処理

  24. 24

    Swiftで非同期httpリクエストを処理する方法

  25. 25

    Resttemplateを使用して複数の非同期HTTPリクエスト

  26. 26

    複数の非同期リクエストを同時に

  27. 27

    非同期処理の実行中にhttpリクエストを保持する

  28. 28

    Reactで複数の非同期待機リクエストを待機する方法

  29. 29

    Javaの非同期HTTPリクエスト

ホットタグ

アーカイブ