Activity四种启动模式
- 1.standard
- 2.singleTop
- 3.singleTask
- 4.singleInstance
1.standard系统默认的启动模式
每次启动ActivityB(standard)都会创建一个新的ActivityB实例。并且所有的Activity实例都在当前程序所在的Task中。
ActivityB可存在多个实例并且可以重叠存在
启动Activity方式
// 显示启动
Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivity(intent);
//隐式启动
Intent intent = new Intent();
intent.setAction("action");
startActivity(intent);
2.singleTop启动模式
该启动模式使程序Task中可存在多个ActivityB实例。但ActivityB不会存在重叠的实例,顶层如存在实例ActivityB,如果再启动ActivityB,不会创建新的实例,而是直接调用ActivityB中的onNewIntent(Intent intent)方法。
ActivityB可以存在多个实例但不能重叠存在
3.singleTask启动模式
程序Task中不可存在多个ActivityB实例。如Task中已经存在ActivityB实例,再次启动ActivityB,则系统会把Task中ActivityB实例之上所有Activity实例销毁,然后调用ActivityB实例的onNewIntent(Intent intent)方法。
ActivityB不会存在相同的实例Activity
4.singleInstance启动模式
ActivityA启动ActivityB(singleInstance),系统会为ActivityB单独开启一个Task并且把ActivityB实例放入Task中,如ActivityB跳转到ActivityC,则系统会把ActivityC实例压入程序所在的Task。
ActivityB实例单独占一个Task并且只存在ActivityB一个实例
网友评论