Android四种启动模式

Android四种启动模式:standard、singleTop、singleTask、singleInstance 。

standard:默认模式,在这个模式下,每次都会创建新的Activity实例,可以有多个实例,允许多个相同实例叠加。

singleTop:可以有多个相同Activity实例,但不允许多个相同Activity叠加。即,如果activity位于栈顶,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。

singleTask:相同的Activity只允许有一个。在这个模式下,如果栈中存在这个Activity的实例就会复用这个Activity,不管它是否位于栈顶,复用时,会将它上面的Activity全部出栈,并且会回调该实例的onNewIntent方法。其实这个过程还存在一个任务栈的匹配,因为这个模式启动时,会在自己需要的任务栈中寻找实例,这个任务栈就是通过taskAffinity属性指定。如果这个任务栈不存在,则会创建这个任务栈。

singleInstance:该模式具备singleTask模式的所有特性外,与它的区别就是,这种模式下的Activity会单独占用一个Task栈,具有全局唯一性,即整个系统中就这么一个实例,由于栈内复用的特性,后续的请求均不会创建新的Activity实例,除非这个特殊的任务栈被销毁了。以singleInstance模式启动的Activity在整个系统中是单例的,如果在启动这样的Activiyt时,已经存在了一个实例,那么会把它所在的任务调度到前台,重用这个实例。

个人博客:[https://blog.xvjialing.xyz](https://blog.xvjialing.xyz)

github主页:[https://github.com/xvjialing](https://github.com/xvjialing)

微信公众号

![微信公众号](http://upload-images.jianshu.io/upload_images/3804491-1136ea5d14d234a9.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(Android四种启动模式)