これは、アクティビティのすべてのハードワークを行うサービスを作成するための良いアイデアですか。IEの場合、アクティビティはインターフェイスとサービスの呼び出し、および必要なその他の機能だけを考慮し、サービスはアクティビティで機能する「ツール」になります。
2 に答える
はい、そうです...このビデオをご覧になることをお勧めします:
そのビデオではRESTクライアントアプリについて説明していますが、同じ手法が他の多くの状況でも機能することが証明されています。
まあ。データへのアクセスをカプセル化することは、特にテストが容易になり、データをキャッシュする機会が得られるため、良い考えです。しかし、過度に設計しないでください。Cristianによってリンクされたビデオで概説されているアプローチは、多くの(ほとんどの?)アプリにとってやり過ぎです。多くの場合、良い'ol AsyncTaskは、ほとんどの「ハードワーク」に十分です。そうでない場合は、間違いなくIntentServiceを次のオプションとして検討してください。AIDLとバインディングを備えた完全なサービスルートに進む前に、これらのオプションの両方を検討します。私は通常、バックグラウンドサービス(通知やデータ同期など)が必要な場合にのみ後者のルートに進み、メインアプリとデータを共有します(これはよくあることです)。ビデオのContentProviderパターンについては.. 。個人的には、これらはあなたがしない場合にのみ行う価値があると思います。データのキャッシュを制御したい(またはデータがキャッシュされておらず、デバイスが実際に記録システムである)場合、データを他のアプリケーションに公開したい。ほとんどの場合、カーソルではなくサービスインターフェイスにアプリコードを公開することを好みます。真剣に、過度に設計しないでください。