有关Android launchMode 在APP(task)之间的应用——扔物线视频

  Android launchMode 页面的启动模式,这个我自认为在学校学习的时候,就已经完全理解每种启动模式,在日常开发中也会用到,也许它也并不能完全理解和应用。而我一直也以为启动模式是一个APP之间的一个东西,但没想到其实也影响APP之间。在这之前,我发现我的手机有时候我在清除最近任务的时候,发现相册,我把它清除了之后,再打开最近任务它还是出现,不过里面的照片不同了,这就让我很疑惑,我以为是系统的bug。

  直到我看到这个视频: 扔物线 :Android 面试黑洞——当我按下 Home 键再切回来,会发生什么?

  这个视频值得看三遍,才对得起这个动画😭

  如果不是遇到上面的问题,我可能不会有那么深的体会,照扔物线所说的那样,查看照片这个Activity的启动模式应该是 singleInstance,在平常我可能第一通过相册打开,第二通过相机打开上一张照片。这样就会造成实际上有两个任务栈,在这里认识到一个新的东西 : taskAffinity ,每个Activity都有一个taskAffinity,这个值一般是默认为应用的包名,一般一个APP的每个ActivitytaskAffinity 都是相同的,而手机的人物列表中不能显示重复的 taskAffinity ,所以只会显示一个。

  在最近任务的task未必都活着,活着的任务不一定都在任务列表中显示。

  里面还是提到一个属性allowTaskReparenting (Activity) ,

 

热门相关:斗神战帝