Activity启动模式 launchMode

转载

http://blog.csdn.net/zhangjg_blog/article/details/10923643

singleTop, Activity可能会执行OnNewIntent

singleTask Activity上面的所有Activity将以合适的方式自动销毁, 执行OnNewIntent()

在启动一个singleTask的Activity实例时,如果系统中已经存在这样一个实例,就会将这个实例调度到任务栈的栈顶,并清除它当前所在任务中位于它上面的所有的activity。

以singleInstance模式启动的Activity在整个系统中是单例的,如果在启动这样的Activiyt时,已经存在了一个实例,那么会把它所在的任务调度到前台,重用这个实例

以singleInstance模式启动的Activity具有独占性,即它会独自占用一个任务,被他开启的任何activity都会运行在其他任务中

被singleInstance模式的Activity A在开启另一activity B时,能够开启一个新任务,但是是不是真的开启新任务,还要受其他条件的限制,这个条件是:当前系统中是不是已经有了一个activity B的taskAffinity属性指定的任务。


singleTop适合接收通知启动的内容显示页面。从外界可能多次跳转到一个界面

singleTask适合作为程序入口点

singleInstance适合需要与程序分离开的页面。singleInstance不要用于中间页面,如果用于中间页面,跳转会有问题,比如:A -> B (singleInstance) -> C,完全退出后,在此启动,首先打开的是B。



你可能感兴趣的:(Activity启动模式 launchMode)