Gestire l'interruzione avviata dall'utente delle app che eseguono servizi in primo piano

A partire da Android 13 (livello API 33), gli utenti possono completare un workflow dal riquadro notifiche per interrompere un'app con servizi in primo piano in esecuzione, indipendentemente dalla versione dell'SDK target dell'app. Questa funzionalità, chiamata Task Manager, mostra un elenco di app che attualmente eseguono un servizio in primo piano.

Nella parte inferiore del riquadro di riepilogo delle notifiche è presente un pulsante che indica il numero di app attualmente in esecuzione in background. Quando premi questo pulsante, viene visualizzata una finestra di dialogo con i nomi di diverse app. Il pulsante Interrompi si trova a destra di ogni app.
Figura 1. Flusso di lavoro di Task Manager sui dispositivi con Android 13 o versioni successive.

Questo elenco è denominato App attive. Accanto a ogni app è presente un pulsante Interrompi. La Figura 1 illustra il flusso di lavoro del Task Manager su un dispositivo con Android 13.

Quando l'utente preme il pulsante Interrompi accanto alla tua app in Gestione attività, si verificano le seguenti azioni:

  • Il sistema rimuove l'app dalla memoria. Pertanto, l'intera app viene interrotta, non solo il servizio in primo piano in esecuzione.
  • Il sistema rimuove il back stack delle attività dell'app.
  • La riproduzione di contenuti multimediali viene interrotta.
  • La notifica associata al servizio in primo piano viene rimossa.
  • La tua app rimane nella cronologia.
  • I job pianificati vengono eseguiti all'ora pianificata.
  • Le sveglie suonano all'ora o nella finestra temporale programmata.

Per verificare che l'app si comporti come previsto durante e dopo l'interruzione dell'app da parte di un utente, esegui questo comando ADB in una finestra del terminale:

adb shell cmd activity stop-app PACKAGE_NAME