Android在AndroidMainiFest中设计了4种Activity的启动方式,分别是:
1、Standard
2、SingleTop
3、SingleTask
4、SingleInstance
1、Standard:
默认的启动方式,每一次启动Activity都会创建一个新的实例
2、SingleTop
这种启动方式会在创建的时候查看栈顶Activity是否为该Activity,如果是,直接使用这个Activity,否则创建新的实例。这种模式适用于消息回弹的情况,比如当接收到3条消息,我们不可能创建三个相同页面的实例。我们可能会在第一条信息的回弹创建一个实例,在其他两条信息的回弹时,直接使用这个栈顶Activity。
3、SingleTask
SingleTask模式可以看做是一种增强版的SingleTop。因为他是在启动Activity时查看栈内是否有这个Activity的实例,如果有,则将该ACtivity以上的Activity全部销毁,从而将该Activity置于栈顶。
这种启动模式还可以用于优雅的退出程序。由于一个程序的启动最先启动的是MainActivity,所以我们可以将MainActivity的启动模式设置为这种方式。在需要退出这个程序的时候,启动MainActivity,就可以将所有其他的Activity销毁。之后在将MainActivity也销毁掉就行了