Android启动模式
2019-12-26 本文已影响0人
SoundYoung
自己的学习总结,不是很详细,很准确,很官方
一,Android Activity常见的启动模式
1,standard:标准模式:系统默认模式,后进先出,每次启动都会调用onreate(),onstart() onresume(),ActivityA中启动ActivityB,那么就会在ActivityA的栈中压入ActivityB,并创建实例。所以,当用 ApllicationContext去调用ActivityB,会失败,因为ApllicationContext没有栈。解决办法-指定新栈,FLAG_ACTIVITY_NEW_TASK
2,singleTop:栈顶复用:如果被调用的Activity,在栈中有,并且在栈的顶部,那么不会创建Activity实例,而是直接调用。比如一个栈中有ABCD A在栈的顶部,调用A,那么栈里还是ABCD ,如果调用B,栈会变成BABCD
3,singleTask:栈内复用:跟singleTop区别,不只在栈顶才有效,而是栈内都有效,需要注意的是singleTask有cleartop效果,比如 栈内 ABCD,A为栈顶,我调用C,那么执行后的结果为,栈内只有CD,AB会被清除
4,singleInstance:单实例模式,加强的singleTask
二,IntentFiter的作用:
Activity的启动分为显式和隐式,隐式调用的时候需要进行过滤,就用到了IntentFiter
里面常用有有<action /><category/>