フォアグラウンド サービスとバインドされたサービスを使用した Jetpack Compose を備えたシンプルなストップウォッチ アプリケーション
完全なビデオチュートリアルについては YouTube をチェックしてください
このアプリケーションは基本的に、時、分、秒を表す 3 つの異なるテキストユニットで構成されています。また、UI には 2 つのボタンがあります。最初のボタンはサービスの状態に基づいて変更され、2 番目のボタンを使用するとフォアグラウンド サービスをキャンセルできるようになり、結果としてストップウォッチがリセットされます。
ストップウォッチは UI ボタンまたは通知パネルで制御できます。サービスを使用しているので、アプリケーションを閉じても、通知パネルでストップウォッチの状態を追跡できます。
Hilt は、プロジェクトで手動で依存関係を注入する定型的な作業を軽減する、Android 用の依存関係注入ライブラリです。手動で依存関係の挿入を行うには、すべてのクラスとその依存関係を手動で構築し、コンテナーを使用して依存関係を再利用および管理する必要があります。
Hilt は、プロジェクト内のすべての Android クラスにコンテナを提供し、それらのライフサイクルを自動的に管理することにより、アプリケーションで DI を使用する標準的な方法を提供します。 Hilt は人気のある DI ライブラリ Dagger の上に構築されており、Dagger が提供するコンパイル時の正確性、実行時のパフォーマンス、スケーラビリティ、Android Studio サポートの恩恵を受けます。
バインドされたサービスは、他のアプリケーションがそれにバインドして対話できるようにする Service クラスの実装です。サービスにバインドを提供するには、onBind() コールバック メソッドを実装する必要があります。このメソッドは、クライアントがサービスと対話するために使用できるプログラミング インターフェイスを定義する IBinder オブジェクトを返します。
フォアグラウンド サービスは、ユーザーが認識できる操作を実行します。
フォアグラウンド サービスではステータス バー通知が表示されるため、アプリがフォアグラウンドでタスクを実行し、システム リソースを消費していることをユーザーが積極的に認識できます。
Android 12 (API レベル 31) 以降を実行するデバイスは、実行時間が短いフォアグラウンド サービスの合理化されたエクスペリエンスを提供します。これらのデバイスでは、システムはフォアグラウンド サービスに関連付けられた通知を表示するまで 10 秒待機します。いくつかの例外があります。いくつかの種類のサービスでは、常にすぐに通知が表示されます。