设计三个activity:act1,act2,act3;

我们在配置文件中将三个act都可以设置为singleTop,通过相互或自身跳转来熟悉这种模式的特点。
首先我们的执行顺序为:act1->act2->act3->act1->act2->act3
可以发现相邻不同的act之间的跳转和standard模式一样:

接下来我们回退到栈内最后一个act1也就是回退5次发现还是一样:

那么我们再做这样的一次跳转相同一act:act1->act1-act1发现了它的特点:

跳转相同的页面,它调用了onNewIntent而不再是onCreate->onStart->onResume->前onStop(当然在内存不够的时候销毁了之前相同的act依然会走onCreate方法)。
返回时由于在栈顶永远都是这个act1所以是同一个实例所以回退只会一次:

总结:当前singleTop模式的act正处于栈顶时,跳转该act会调用onNewintent方法且不会重新创建该act实例,只会重新调用该实例,生命周期为:onPause->onNewIntent->onResume

本文深入探讨了Android中Activity的SingleTop启动模式。通过具体实例,分析了在同一Activity间跳转时onNewIntent方法的调用过程及不同情况下的生命周期变化。
6990

被折叠的 条评论
为什么被折叠?



