最近在弄android系统遇到一个比较恶心的问题,联系人创建快捷方式到桌面--->从桌面点击该快捷方式--->退到最近任务列表 这时候发现里面根本没有联系人的影子。
由于之前一直是做前端开发,这种东东确实是闻所未闻。 看到之后有一种想哭的冲动。
好在打一堆日志看出点眉目,发现从快捷键打开其实任务本是存在的,但是在退到最近列表时 却立马给移除掉了。
filterNotRecentTask() remove tasks:Task(8) isActie:true key:Task.Key:8,s:8,u:0,lat:4478486645,com.android.contacts ComponentInfo{com.android.contacts/com.android.contacts.quickcontact.QuickContactActivity?[com.android.systemui.recents.model.Task@1a3005
折腾好久终于找到原因,特此记录 爬坑日记:
原来在进入多任务时候,会过滤掉某些activity,过滤的准则就是:
1、 清单文件中添加 android:excludeFromRecents="true"
2、startActivity的intent里添加Flag:FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
这两个标记最终都会反应到ActivityManager.RECENT_WITH_EXCLUDED属性上