2012-04-13 8 views
2

何か非同期を行う必要がある場合は、これをサービスに入れることをお勧めします。すばらしいです。しかし、サービスからアクティビティを起動することも推奨されていません。そのため、サービス内で非同期応答が返ってくると、おそらくユーザは別の画面に表示されます。それでは、彼らはサービスに縛られているのです。いずれの方法がより良いのか、そしてなぜそれが問題なのでしょうか?私はサービスがクールですが、サービスコールへの拘束があり、サービスがコールバックをアクティビティに持ってはならないという問題もあります。だからどちらの方が良いですか。 AsyncTaskとサービスを使用して非同期作業を行うための基準は何ですか?また、あまりにもrequestForResult()オプションが...あり非同期タスクを使用するアクティビティの処理サービスを呼び出す

答えて

3

のcriteriasは基本的に、

  1. あなたが定期的にいくつかのデータを更新したり、Androidは音楽プレーヤーの例を示します(一部のタスクを継続する必要がありますかどこアクティビティが表示されていなくても音楽が継続されます)。ここでサービスを利用してください。

  2. データやタスクを複数のアプリケーションで実行する必要がありますか?このような場合、アプリケーションはサービスにバインドして情報にアクセスする必要があります。

  3. IPCが関与しているケースがありますか?サービスを利用する。

  4. あなたは、データをダウンロードするような重い作業をする必要がある場合がありますか、時間がかかるキックロスアルゴリズムですか?バックグラウンドスレッドで大量のタスクをすべて実行し、完了したらUIを更新します。 AsyncTaskを使用します。

asynctaskは単純です。 ANRを避けるために、別のスレッドで大量のタスクを実行するためにあなたの活動で主に使用されます。

サービスは、アプリが実行されていなくても実行する必要があるタスクを実行するために使用され、他のアプリはデータを更新するためにバインドする必要があります。

私は、より多くの基準があると確信していますが、これはちょうど私に来たほんの一部です。

関連する問題