2012-02-09 8 views
5

私は、リモートサーバーに接続し、提供されたデータを表示することを主な目的とするアプリケーションに取り組んでいます。Androidでの同期サービスコール

サービスはSoapベースです。そのためにはksoapライブラリを使用しますが、大文字と小文字を区別しましょう。

私は非同期タスクを使用して「呼び出しサービス」を行っています。 すべてがうまくいっていたようですが、...

サービスはシーケンシャルであり、リクエストを「失う」傾向があるため、適切な結果が得られません。

ので、パフォーマンスは、このようにひどいです

など私はこの問題を解決するために、同期的なアプローチを取ることにしたが、この方法では、私は、追加のロードボタン/バーを提供しなければなりません。そのようなケースを処理する最善の方法は何ですか? どのような種類の同期を使用できるので、要求間に競合はありませんか?

どのようにしてAndroidサービスを利用できますか? どのように優れていますか?

お返事ありがとうございます。

+0

ためdocs pageは、なぜあなたは順次AsyncTasksを実行していない、と彼らは成功している場合にのみ参照してください? – dmon

+0

これを順番に呼び出すとどういう意味ですか? – Olek

答えて

15

あなたが実際に同期した方法でAsyncTaskを呼び出すことができます。

class MyTask extends AsyncTask<Void,Void,String> 
{...} 

MyTask x = new MyTask(); 
String result = x.execute().get(); 

AsyncTask

+1

迅速な対応をありがとうございます。あなたはそれを自分で試しましたか?だから私はそれが実行するスレッドでjoin()を呼び出すと思うのです。 get()はUIやその他のタスクを中断しませんか? Tasksキューを制御するメカニズムが組み込まれていますか? – Olek

+0

私は主に "同期"の部分に返信したと思います。私は、あなたの返事が返ってくるまでUIをブロックしたいと思っていました。少なくともonPreExecuteとonPostExecuteを使うと、プログレスバーなどを安全に開始することができます。 –

+0

実際に私はUIをフリーズしたくありません。そして私はこれを避ける方法を探しています。私は仕事のほとんどの同期の方法を探しています。 – Olek

関連する問題