2013-05-10 9 views
5

So che dovrebbe essere possibile sia android:excludeFromRecents="true" in Android manifest o Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS Bandiera di intenti.Come non mostrare l'app nell'elenco delle app recenti in ICS? excludeFromRecents non funziona

Il problema è che non funziona se l'applicazione è attualmente mostrata - quando si fa clic sul pulsante Applicazioni recenti, l'applicazione viene sempre mostrata in primo luogo, consentendo di uccidere rapidamente l'applicazione (facendola scorrere). Non va bene per un'app sveglia.

Music Service continua a giocare per fortuna e l'utente può tornare a terminare l'allarme con la notifica, ma ho davvero difficoltà a ricreare le attività.

Qualsiasi soluzione rapida disponibile?

+0

Si sta tentando di aggirare il problema, impedendo all'utente di passare l'app sui recenti. Lo stack dell'app può anche essere cancellato dall'utente dalle impostazioni o da altre app (Task Killer) o dal sistema operativo quando è necessaria la memoria. Devi essere in grado di gestire la notifica riaprendo l'app e creando uno stack sintetico. –

+0

Hai provato a terminare la tua attività prima che vada in background? prova this.finish() sugli eventi onPause() e onStop() –

risposta

1

Questo è un ben noto Problema Android: https://code.google.com/archive/p/android-developer-preview/issues/1662

questa è una soluzione:

ActivityManager am =(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 
if(am != null) { 
    List<ActivityManager.AppTask> tasks = am.getAppTasks(); 
    if (tasks != null && tasks.size() > 0) { 
     tasks.get(0).setExcludeFromRecents(true); 
    } 
} 

Se Task Root attività è esclusa dalla recente, saranno escluse tutte le attività in questo compito pure.

+0

Questo lavoro per l'attività in primo piano in Android 5, ma non funziona in Android 6+ –

Problemi correlati