activity在SingleTask模式下的生命周期

这次是在SingleTask中作了实验。

我们先做了三个简单的activity。act_task1,act_task2,act_task3。

activity在SingleTask模式下的生命周期_第1张图片

我们先作一般情况下跳转不同的act。如:act_task1->act_task2->act_task3发现与标准情况下没有任何不同。

activity在SingleTask模式下的生命周期_第2张图片

接下来我们再回跳转到act_task1。发现如下:

activity在SingleTask模式下的生命周期_第3张图片

系统会先从内部开始把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。



你可能感兴趣的:(android,生命周期)