私はAndroid開発にまったく慣れていません。
単純なシングルトンクラスを使用するのではなく、Androidサービスを作成するのはいつ良い考えですか?
たとえば、インターネットから情報フィードをダウンロードするデータレイヤーを考えてみましょう。
サービスの使用は、場合によっては多すぎるように思われますが、アクセスが必要になる場合があるContext
ため、アプリの設計方法が少しわかりません。
私はAndroid開発にまったく慣れていません。
単純なシングルトンクラスを使用するのではなく、Androidサービスを作成するのはいつ良い考えですか?
たとえば、インターネットから情報フィードをダウンロードするデータレイヤーを考えてみましょう。
サービスの使用は、場合によっては多すぎるように思われますが、アクセスが必要になる場合があるContext
ため、アプリの設計方法が少しわかりません。
ユーザーがアクティビティを終了した直後に(シングルトンとともに)プロセスを強制終了しても問題がない場合は、シングルトンを使用します。その後もしばらく実行を続ける必要がある場合は、サービスを使用してください。ユーザーがそれを離れた後も実行を継続したいが、ユーザーがメモリがさらに必要な他の場所にいるためにそれと一緒に暮らすことができる場合は、シングルトンを使用します。
これら2つの間の決定は、アプリのライフサイクルにのみ依存します。この目的のために、サービスが行うのはそれだけです。プラットフォームにプロセスの管理を変更するように依頼してください。シングルトンのコンテキストが必要な場合は、Context.getApplicationContext()を使用してプロセスのグローバルコンテキストを取得します。