Chris BO
Results
1
comments of
Chris BO
设置了`singleTask`为启动模式的Activity,它在启动的时候,会先在系统中查找是否存在属性值`taskAffinity`等于它自己的任务栈存在, - **如果不存在**:就在新任务栈中启动 - **如果存在**:则找到该任务栈,查找该任务栈中是否存在该Activitcly实例, - **如果存在实例**:则将它上面的Activity实例都出栈,然后回调启动的Activity实例的onNewIntent方法,另外生命周期方法执行顺序为onPause(当前activity) -> onNewIntent ->onRestart->onStart->onResume->出栈的activity依次从低到高执行onStop、onDestroy; - **如果不存在该实例**: 则新建Activity,并入栈。 因此,如果我们想要设置了启动模式为`singleTask`的Activity在新的任务栈中启动,就要为它设置一个独立的`taskAffinity`属性值。另外,我们可以将两个不同App中的Activity设置为相同的taskAffinity,这样虽然在不同的应用中,但是Activity会被分配到同一个Task中去