19
在实际项目中需要根据需求合理设定不同的启动模式,一共有四种standard、singleTop、singleTask和singleInstance。
通过AndroidManifest.xml中中的android:launchMode属性进行设置。
standard:每当standard模式启动的活动,不会在意是否已启动,即不会在意是否处于返回栈,每次启动都会创建一个新的活动,而且打开几个活动就需要按几次返回
singleTop:在启动的时候如果发现返回栈栈顶就是该活动,则不会创建新的活动,不管启动几次活动都只需要按一次返回,因为栈顶始终是该活动。但是如果该活动不处于栈顶位置,再次启动的话则仍会创建新的实例
singleTask:使用singleTop可以解决重复创建栈顶活动的问题,但是如果该活动不处于栈顶,则会创建很多活动。而singleTask模式会在返回栈中先检查是否存在待启动活动的实例,不存在的创建一个实例,如果存在则将其置为栈顶,并弹出所有该活动之上的活动
singleInstance:启动活动的时候会直接创建一个新的返回栈。假设有一个活动是需要共享的,如果使用前三种启动模式,均会创建新的实例,由于需要共享,因此不可能新建实例,所以使用单独的返回栈管理这个活动。(eg:设置second为singleInstance模式,在first启动second,在second启动third,则first和third处于同一个栈,second处于一个栈,此时栈顶活动为third,按返回会回到first而不是second,因为first和third处于同一个栈,再次按返回之后才会回到second,因为该栈已空,再次返回后会

浙公网安备 33010602011771号