activity有以下四种启动模式:
standard(activity默认模式)
singleTop
singleTask
singleInstance
怎么设置activity的启动模式:
可以在AndroidMainifest.xml里面,的activity标签里面设置android:launchMode 属性
如何理解这四个启动模式
standard
standard是activity默认的启动模式,在activity栈中,只要每次创建一个activity就会加入栈中,栈中可以存在多个一样的activity。
singleTop
假设你activity栈顶有了一个activity A,这时候你再创建一个activity A的话,那么他会通过调用onNewIntent()方法重用你栈顶的activity A,而不会又新建一个activity A,这样就保证了你的栈顶只有一个activity A,其他情况的话和standard一样。
singleTask
假设在activity栈中有一个activity A,这时候你在创建一个activity A的话,那么他不会创建新的Activity A,而是把activity A前面的activity全部销毁掉,让activity A重新回到栈顶,也是调用了onNewIntent();
singleInstance
只要你创建了不同的activity,就会形成新的activity栈,并且如果activity已经创建的话,那么再创建相同的activity,就会调用onNewIntent进行复用。