这个只要给Activity设置“android:excludeFromRecents=true”即可,官方的解释如下:
android:excludeFromRecentsWhether or not the task initiated by this activity should be excluded from the list of recently used applications, the overview screen. That is, when this activity is the root activity of a new task, this attribute determines whether the task should not appear in the list of recent apps. Set “true” if the task should be excluded from the list; set “false” if it should be included. The default value is “false”.
如果设置为true,那么这个Activity将不会出现在最近任务列表中,如果这个Activity是整个Task的根Activity,整个Task将不会出现在最近任务列表中。
同样,也可以通过Intent的启动,并设置 Flag: “FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS”,Flag 值为 “0x00800000”,参考 Intent | Android Developers。
在退出哪儿App时候,查看一下 ActivityManager 的 log,如下:
I/ActivityManager﹕ START u0 {flg=0x14818000 cmp=com.Qunar/com.mqunar.atom.alexhome.ui.activity.MainActivity (has extras)}
可见,在退出的时候,启动了一个Activity,注意这里的 flg=0x14818000,可见 “FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS” 的 flag 被设置了。也就是启动了一个不显示在最近任务列表中的新Activity。这就达到了那个退出App,不显示在最近任务列表的效果。
android工程师6666