回答:
Androidアプリケーションには3種類のコンポーネントがあります。一般に、ユーザーはそれらについて知る必要はありません。アプリ作成者が特定の動作をアプリにプログラムする方法です。ただし、タスクマネージャーなどでアプリの動作を注意深く監視している場合、またはTaskerなどのアプリで物事を自動化している場合は、システム内でそれらがどのように組み合わされるかを理解しておくと役立ちます。
活動は、コンポーネントの最も身近なタイプです:フルスクリーンやダイアログのサイズのいずれか:それはあなたが見ることができるウィンドウです。アクティビティは、画面に表示されている間のみ実行されます。アクティビティを終了すると、Androidはそのアプリをメモリ内に保持して再度起動できるようにしますが、アクティビティは実行されず、バッテリーやネットワークを使用しません。アプリはインテントを使用してアクティビティを開始します。インテントは、開始するアクティビティを明示的に指定することも、実行するアクション(特定のファイルを開くなど)を指定することもできます。複数のアクティビティがインテントを「処理」できる場合、いずれかを選択するように求めるダイアログが表示されます。
サービスは、別のアプリケーション・コンポーネントです。別のコンポーネント(アクティビティ、または別のサービス)がサービスを開始すると、停止するまでバックグラウンドで実行されます。つまり、サービスは、画面に何も表示せずに、携帯電話をスリープ状態に保つ(スリープ解除ロックを使用する)、バッテリーを使い切る、または大量のネットワークデータを使用することができます。
アプリはサービスを使用して、サーバーからのファイルのダウンロード、メールの確認、場所の確認など、バックグラウンドで長時間実行されるプロセスを実行できます。サービスは表示されず、ユーザーと直接やり取りすることもできませんが、「実行中のアプリ」リストには表示されます。設定アプリから、アプリまたはアプリケーションマネージャーを選択し、実行中を選択します。その方法でサービスを停止できますが、通常は必要ありません。サービスは直接表示されないため、Androidはアクティビティよりもサービスの重要性が低いと見なします。そのため、携帯電話でメモリがさらに必要になったときに最初に削除されます。
ブロードキャストレシーバーは、3番目の種類のコンポーネントです。サービスと同様に、それらはバックグラウンドでのみ存在し、直接あなたと対話しません。ただし、サービスとは異なり、実行したままにしたり、長いタスクを実行したりすることはできません。イベントに応答するために存在します。また、アクティビティやサービスとは異なり、複数の放送受信機を一度に起動できます。
コンポーネントは1つのアプリにインテントをブロードキャストしますが、特定のアプリを指定せずに頻繁に配信します。この場合、インテントは通常、バッテリーが少なくなっているなど、発生したイベントを表します。システムは、(インテントフィルターを使用して)関心を登録したすべてのブロードキャストレシーバーを見つけ、それぞれを順番に実行します。各ブロードキャストレシーバーは、通知を作成するなどしてすぐに反応したり、サービスやアクティビティを開始してさらにアクションを起こすことができます。ブロードキャストレシーバーがイベントを処理するとすぐに停止され、別の同様のイベントがブロードキャストされるまで再び実行されません。
3つのコンポーネントすべてが連携して動作する例として、Google Playからアプリをダウンロードする場合があります。まず、Google Playアクティビティは、ダウンロードするコンテンツを選択するための視覚的なインターフェースを提供します。アプリのリストは1つのアクティビティになります。「インストール」ボタンをクリックすると、別のアクティビティが開始され、確認または支払いダイアログが表示されます。確認すると、ダイアログアクティビティがサービスを開始します。サービスは、アクティビティが終了して実行されなくなっても、コンテンツのダウンロードを継続します。
ただし、新しいアプリのダウンロード中に電話がインターネットに接続できなくなる可能性があります。これが発生した場合、Google Playのダウンロードサービスはブロードキャストレシーバーを登録し、ネットワーク接続の変更に関心があることを示すインテントフィルターを使用して、サービスを停止します。電話がインターネットに接続すると、システムはイベントをブロードキャストします。Androidは、Google Playサービスが登録したブロードキャストレシーバーと、そのイベントを待機している他のブロードキャストレシーバーを起動します。この場合、ブロードキャストレシーバーはダウンロードサービスを再度開始します。このサービスは、ダウンロードの進行に合わせて通知を作成し、終了すると、独自のブロードキャストを送信して、新しいパッケージがインストールされたことを他のアプリに通知し、その後停止します。これにより、他のアプリからのブロードキャストレシーバーが起動し、
要約すれば:-