关于android Activity的几种启动方式

activity有4种不同的启动方式,并且启动效果也各不一样,好记性不如烂笔头,写下来加强印象吧!

  • Standard :这是默认的启动方式,我们在manifest xml当中如果没有设置的启动方式的话默认就是standard的方式来启动activity的,standard方式在你启动某个activity时,系统不会管你这个实例是否存在于栈当中,都会创建一个新的实例。
  • SingleTop:如果启动activity时发现它当前已经在栈顶则不会重新创建一个实例如果,你启动的那个activity不再栈顶的话就会重新创建一个activity实例。
  • SingleTask:当你的activity设置为SingleTask时,每次启动你的额activity的时候 就会去栈里面是否存在这个activity的实例,如果存在则直接使用这个实例,并把这个activity之上的所有其他的activity统统出栈,如果栈里面没有这个activity的实例的话就创建一个该activity的实例。
  • singleInstance:当activity设置为singleInstance时,这个activity会启动一个单独的返回栈来管理这个活动。这个做到的意义在哪里呢?这个场景 我们的activity在被其他应用调用时,如果其他的应用在我们的被调用的activity上面点击back,这个时候应该是返回到他那个应用的而不是我们activity退栈,所以使用singleInstance模式就可以解决这个问题,在这种模式下会有一个单独的返回栈来管理这个活动,不管是哪个应用程序来访问这个活动,都共用的同一个返回栈,也就解决了共享活动实例的问题。
    看图:


    关于android Activity的几种启动方式_第1张图片
  • 比如,你在自己应用图片列表(也就是返回栈A的FirstActivity) 跳转到了 美图秀秀的activity(返回栈B SecondActivity)里面,编辑完之后 你点击发送,跳转到了你自己的应用发送的界面(ThirdActivity),这个时候你在发送图片的界面点击返回应该是返回你自己的activity而不是美图秀秀的activity当中。

你可能感兴趣的:(关于android Activity的几种启动方式)