1

独自の内部 Web サーバーを実行するデバイスとやり取りするプログラムを作成しています。Web API を介してデバイスと通信します。

基本的に何が起こるかというと、ユーザーがデバイスに特定の変更を加えることができる GUI がユーザーに表示されます。これらの変更はデバイスに伝達され、結果は XML で返されます。デバイスは、ユーザーに対して特定の値を更新するために、多かれ少なかれ継続的に (たとえば 15 秒ごとに) プログラムと対話する必要があります。

私が想像している私の構造は次のようなものです:

UI - メイン - ネットワーク - XML パーサー。

これらを管理する方法についてアドバイスを求めています。ユーザーにスムーズなエクスペリエンスを提供するには、UI スレッドを分離する必要があることを理解しています。また、ネットワーキングは少なくとも非同期タスクであるべきであることも理解しています。彼らのやり取りをどのように処理し、物事がスムーズかつ効果的に行われているかを確認する方法についてはよくわかりません.

私の考えでは、Main はデータの受け渡しを処理し、特定のメッセージまたは変更を送信するようネットワーク担当者に指示し、返された XML をパーサーに渡し、解析された値を処理のために UI に渡します。

それ以上のアドバイスが欲しいのですが。

4

2 に答える 2

2

で作成されるサービスの作成をご覧くださいActivity。計画の詳細を知らなくても、Serviceすべての重い作業を実行するための最適なソリューションのように見えます.

アップデート:

Web API への呼び出しをサービスで実行し、必要に応じてインターフェイスを介して UI を更新できます。サービスに独自のスレッドで実行するように指示する必要があるため、スレッドの安全性が問題になりますが、AsyncTask.

于 2012-06-13T16:01:40.643 に答える
0

Google C2DM の使用について考えてみてください。

あなたの場合、

長所 -> バッテリの使用量が少なく、ネットワーク トラフィックが調整され、継続的なサービスを実行する必要がなく、デバイスがリソースを使い果たしたときに強制終了される可能性がありません。

短所 - >結果を手動で内部サーバーに投稿する必要があり、サーバーはデバイスが応答している要求を認識している必要があります。通信が切断され、リアルタイムではない可能性があります。デバイスと Google マーケットに Google アカウントが必要です。

于 2012-06-14T04:07:51.420 に答える