这次是在SingleTask中作了实验。
我们先做了三个简单的activity。act_task1,act_task2,act_task3。
我们先作一般情况下跳转不同的act。如:act_task1->act_task2->act_task3发现与标准情况下没有任何不同。
接下来我们再回跳转到act_task1。发现如下:
系统会先从内部开始把act_task1与act_task3之间的act全部结束noDestroy。然后暂停act_task3,调用act1的onNewIntent->onRestart->onStart->onResume然后再停止并结束act3。
总结:
一、
SingleTask与SingleTop生命周期相同的时候是在当前act正处于栈顶且跳转的是该act。
但是在里面的时候,由于处于非栈顶的act都被完全覆盖了,所以生命周期会不仅仅运行onPause还会到onStop,所以在重新启用时,会先调用onRestart,再执行以下顺序:onStart->onResume。
二、
跳转singleTask模式的act,需要先结束栈内除跳转的act外的act,然后再暂停当前act,接着重启act,最后结束之前暂停的act。