1

アクティビティ、インテント、ブロードキャスト レシーバーなどの他のアプリケーション コンポーネントについては、ユース ケースを理解できますが、ドキュメントに記述されているサービスのユース ケースは、静的メンバー (変数とメソッド) を持つ単純な Java クラスを使用して実現できます。ダウンロードファイルサービスが必要な場合のように。引数に taskListener とその他の必要なパラメーター (ファイルの URL など) を受け取り、ファイルを非同期でダウンロードして、taskListener のコールバック メソッドにコールバックを渡す静的メソッドを使用できます。では、なぜそのためにサービスを使用する必要があるのでしょうか。

誰かがサービスを使用する理由を例で説明してください

4

1 に答える 1

2

まず、必要に応じて、サービスをエクスポートすることで、アプリケーションの外部からサービスを開始またはバインドできます。これは、単純な Java クラスでは実行できません。これは、ほとんどの特殊なサービス (インプット メソッド、 、 など) にとって不可欠AccessibilityServiceですTileService

次に、サービスはプロセスの重要性を高め、ユーザーに代わって作業を行っていることを Android に伝えます。これにより、Android がそのプロセスを終了して他のアプリのためにシステム RAM を解放する前に、プロセスをより長く維持することができます。これは、単純な Java クラスでは実行できません。たとえば、単純な Java クラスを使用してファイルをダウンロードできますが、ダウンロードが完了する前に Android がプロセスを終了する可能性があります。ダウンロードがサービスによって管理されている場合、この可能性は低くなります。

于 2016-05-25T13:43:34.873 に答える