Android 13(API レベル 33)では、ターゲット SDK バージョンにかかわらず、ユーザーは通知ドロワーからフォアグラウンド サービスを停止できます。フォアグラウンド サービス(FGS)タスク マネージャーと呼ばれるこの新しいアフォーダンスは、現在フォアグラウンド サービスを実行しているアプリのリストを表示します。このリストには、[有効なアプリ] というラベルが付いています。各アプリの横に [停止] ボタンがあります。図 1 は、Android 13 を搭載したデバイス上の FGS タスク マネージャーのワークフローを示しています。
ユーザー アクションによりアプリ全体が停止する
FGS タスク マネージャーでユーザーがアプリの横の [停止] ボタンを押すと、実行中のフォアグラウンド サービスだけでなく、アプリ全体が停止します。
「上にスワイプ」および「強制停止」ユーザー アクションの動作との比較
FGS タスク マネージャーと、[最近] 画面からの「上にスワイプ」と正常に動作していないアプリの「強制停止」を行う既存のアフォーダンスとの違いを次の表で確認してください。
FGS タスク マネージャー | 上にスワイプ | 強制停止 | |
---|---|---|---|
アプリをメモリから直ちに削除 | ✔ | ✔ | |
メディアの再生を停止 | ✔ | ✔ | |
FGS による停止の通知 / 関連する通知を削除 | ✔ | ✔ | |
アクティビティのバックスタックを削除 | ✔ | ✔ | ✔ |
履歴からアプリを削除 | ✔ | ✔ | |
スケジュールされたジョブをキャンセル | ✔ | ||
アラームをキャンセル | ✔ |
ユーザーが FGS タスク マネージャーでアプリを停止した場合、コールバックは送信されない
ユーザーが [停止] ボタンを押した場合、システムはアプリにコールバックを送信しません。アプリがバックアップを開始したときに、既存の ApplicationExitInfo
API に含まれる新しい理由 REASON_USER_REQUESTED
を確認すると役に立つ場合があります。
長時間実行されているフォアグラウンド サービスに関するシステム プロンプト
アプリが長時間(24 時間以内に少なくとも 20 時間)フォアグラウンド サービスを実行していることを検出すると、システムはユーザーに通知を送信して、FGS タスク マネージャーの操作を促します。
詳しくは、長時間実行されているフォアグラウンド サービスについてユーザーに警告する新しいシステム通知をご覧ください。
除外
特定のタイプのアプリには、以下のセクションで説明するいくつかのレベルの除外が適用されます。
除外は、プロセス単位ではなくアプリ単位で適用されます。アプリ内の 1 つのプロセスが除外されると、そのアプリ内の他のプロセスもすべて除外されます。
FGS タスク マネージャーの表示対象からの除外
以下のアプリは、タスク マネージャーに一切表示されることなく、フォアグラウンド サービスを実行できます。
- システムレベルのアプリ
- 緊急情報サービスアプリ(つまり、
ROLE_EMERGENCY
ロールを持つアプリ) - デモモードのデバイス
ユーザーによる停止対象からの除外
以下のタイプのアプリがフォアグラウンド サービスを実行している場合、それらは FGS タスク マネージャーに表示されますが、アプリ名の横に、ユーザーが押すことができる [停止] ボタンは表示されません。
- デバイス所有者アプリ
- プロファイル所有者アプリ
- 永続的なアプリ
ROLE_DIALER
ロールを持つアプリ
テスト
ユーザーがアプリを停止している間または停止した後でアプリが想定どおりに動作するかどうかをテストするには、ターミナル ウィンドウで次の ADB コマンドを実行します。
adb shell cmd activity stop-app PACKAGE_NAME