0

RESTプロトコルを利用するクライアントサーバーAndroidアプリケーションを開発しています。

基本的に、最初に画像をサーバーにアップロードしてからサーバーで処理し、Android アプリケーションでこの画像のステータスを更新します (新規から処理済みへ)。

そのため、ユーザーは「更新」を押して、サーバーから処理された画像の更新されたリストを受け取る必要があります...

きっと嫌だ…

サーバーが処理を完了した後に何らかのコールバックを行うことは可能ですか? 私はやや似ている... ajaxを探していると思います。つまり、サーバーは、ユーザーが「更新」ボタンを押すのではなく、リストを更新するイベントをトリガーする必要があります。また、画像が処理されたかどうかを送信した後、2秒ごとにサーバーに問い合わせたくありません...もっとエレガントな解決策が必要だと思います。

そのような機能を実装する正しい方法は何ですか?

アプリケーションのサーバー部分と Android 部分の両方を変更できます

前もって感謝します!

4

2 に答える 2

0

droidQueryを使用して、Ajaxと同様の構文でリクエストを実行できますJavascript。高度な設定が可能なので、ヘルプについてはjavadocsJavascriptを確認してください ( を使用したことがある場合は、すぐに慣れることができます)。呼び出しはバックグラウンド スレッドで実行されますが、コールバック メソッドはメイン スレッドで呼び出されます。応答postを取得する方法の例を次に示します。JSON

$.ajax(new AjaxOptions().url("http://www.example.com")
                        .type("post")
                        .dataType("json")
                        .data(bitmap_bytes)
                        .context(this)
                        .success(new Function() {
                            @Override
                            public void invoke($ droidQuery, Object... params) {
                                JSONObject json = (JSONObject) params[0];
                                //handle json response. Also see $.map(JSONObject) for parsing
                            }
                        })
                        .error(new Function() {
                            @Override
                            public void invoke($ droidQuery, Object... params) {
                                AjaxError e = (AjaxError) params[0];
                                Log.e("$", "Error: " + e.status + ": " + e.error);
                            }
                        }));

プログレス スピナーを追加する場合、droidProgressdroidQuery Extensionであり、非常に簡単にdroidQueryと統合できます。

また、 Java ビットマップをバイト配列に変換Bitmapする で aを abyte[]に変換する方法を確認できます。

于 2013-08-13T15:32:07.517 に答える