2014-12-24 7 views
6

Próbuję zakończyć działanie i nie mam go na liście ostatnich. Poniższy kod wydaje się działać na KitKat, ale nie na Lolipop, ponieważ aktywność ta jest zawsze pokazywana na liście ostatnich.Wykluczenie aktywności z Rezygnacji nie działa w systemie Android 5.0

intentInvite = new Intent(context, OnInviteActivity.class); 
intentInvite.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intentInvite.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intentInvite = createInviteIntent(intentCloud, intentInvite); 
context.startActivity(intentInvite); 

AndroidManifest.xml

<activity android:name=".OnInviteActivity" 
      android:label="@string/app_name" 
      android:excludeFromRecents="true" 
      android:noHistory="true" 

Odpowiedz

3

spróbuj dodać unikalny taskAffinity:

<activity android:name=".OnInviteActivity" 
      android:label="@string/app_name" 
      android:taskAffinity=".OnInviteActivity" 
      android:excludeFromRecents="true" 
      android:noHistory="true" 
+0

Dzięki, działa. – Saty

+1

nie działa dla Androida N sdk 24 –

0

miałem ten sam problem z android Jelly Bean i miałem w moim manifeście:

<activity android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:excludeFromRecents="true" 
      android:noHistory="true" /> 

Usunąłem android:noHistory="true" i to w orked, ostatnie aplikacje przestały pokazywać moją aktywność. Wygląda na to, że noHistory i execludeFromRecents nie są ze sobą kompatybilne z jakiegoś powodu.

0

https://stackoverflow.com/a/27633500/1269737 - to dobrze znany problem Android.

Można to zrobić programowo

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); 
    } 
} 

Jeśli Task aktywność korzeni jest wykluczona z ostatnich, wszystkie działania w tym zadaniu zostanie wykluczony też.