2011-11-29 26 views
0

REST APIを処理するサービスを定義した場合REST APIサービス:BoundまたはIntentServiceである必要がありますか?

このサービスはバインドされているか、IntentServiceである必要がありますか?

多くのアクティビティからアクセスし、現在のクライアントサーバーの状態属性を保持する必要があるため、バインドされたサービスを選択する必要がありますが、そうですか?

要約
最後に、私はシングルトンモデルとシンクアダプタモデルを組み合わせることにしました。大規模なデータセットの場合は同期アダプタ、非データコールの場合はシングルトンを使用します。

答えて

1

なぜSyncAdapterをお試しください。 ブログ投稿thisをご覧ください。

+0

興味深いですが、ユーザーがデータを同期させないようにするのは本当に良い考えですか?最新のデータが必要なアプリケーションや、ほとんどの機能を使用することができないためです。 –

+0

'SyncAdapter'を使用しても、更新を強制することはできません。 – Macarse

+1

あなたは最後に答えましたが、あなたの答えが私に必要な情報をもたらしました。ありがとう –

2

状態を維持する必要がある場合は、バインドされたサービスが最適です。 IntentServiceは、サービスが開始されたワーカー・キュー・タイプの呼び出しのためのもので、作業が終わってから作業がなくなると停止します。

1

シングルトンの代わりにサービスを使用する唯一の方法は、プロセスに開始済みのサービスがある場合、プロセスがOSによって殺される可能性が低いことです(この回答 - Android: When to use Service vs Singleton?参照)。

だから、サービスの代わりにシングルトンを使用するだけです。そしておそらく、あなたがメモリにできるだけ長く滞在したいとOSに伝える方法として、ダミーのサービスを開始してください。プロセスが強制終了されても問題ない場合は、ダミーサービスを停止してください。

+0

はい、可能です。このシングルトンを別のスレッドに入れることはできますか? UIが応答しないように設定しないようにする。 –

+0

もちろん、シングルトンで新しいスレッドを開始する必要があります(これもサービスで行う必要があります)。 – fhucho

関連する問題