睡不着,突然想到activity的四种启动模式,代表了四种资源的利用情况。
无论android、c、java内存离不开堆栈,栈存放的是变量或者指针,堆存放对象或者非基本数据类型。所以堆和栈往往有紧密联系。一个对象在内存中多次被创建,就会浪费多余的内存。而activity的四种启动模式也是四种资源的利用方式。
1.standard:标准模式,activity可以多次实例化。每一个实例都会处理一个对象。
2.singletop:栈顶单一模式,如果是在栈顶,则重复利用。如果不在栈顶则会创建新的实例。
3.singletask:单一任务栈模式,启动该模式下的activity,如果这个activity在栈顶,则重复利用,如果不在栈顶,则会销毁这个activity以上所有的activity,让这个activity处于栈顶。不会实例化新的activity。
4.singleInstance:单一实例模式,这个模式是每启动一个activity会给该activity创建一个单独的任务栈。与singletask不同的是,singleinstance只会存在一个任务栈中,而singletask可以在不同的任务栈。
以上只是