场景1:ActivityA启动ActivityB,ActivityB启动ActivityC,此时用户看到的是ActivityC。ActivityB的启动模式是singleTask。此时用户点击home键,再点击应用图标返回,看到的是ActivityC。
场景2:ActivityA启动ActivityB,ActivityB启动ActivityC,此时用户看到的是ActivityC。ActivityA的启动模式是singleTask。此时用户点击home键,再点击应用图标返回,看到的是ActivityA。
以上两个场景ActivityA都是App入口Activity。
我的问题是:为什么会出现场景2这样的现象,如果是因为入口Activity被设置了singleTask,点击应用图标时重启了入口Activity的话,场景2是没有问题的。但如果是这样,场景1里的ActivityA不应该也会被重启吗?用户看到的不应该是ActivityA了吗?为什么能够到ActivityC呢。总之我觉得这两个是非常矛盾的,希望了解的开发者给解释一下。
Quel est le mode de démarrage de l'activitéA dans le scénario 2 ?
Deux cas de mise
singleTask
Lorsque le
singleTask
duActivity
que vous démarrez n'est pas en bas de la pile (c'est-à-dire qu'il y a unActivity
démarré avant lui), il sera en haut de la pile actuelle . S'il y a unActivity
dessus, il sera supprimé. C'est votre premier scénario.Lorsque le
singleTask
duActivity
que vous démarrez est en bas de la pile (c'est-à-dire le premierActivity
démarré), il démarrera une nouvelle pile, qui n'est pas dans la même position comme la pileActivity
qui est démarrée plus tard. Ceci est votre deuxième scénario.