跳到正文
Pollex's blog
返回

Activity的启动模式和标志位

目录

Activity 启动模式

四种:standard singleTop singleTask singleInstance

standard,标准模式

标准的启动模式,每次 startActivity() 都会创建新实例。 注意: 需要 Activity 对象的 context,如果是 Application 的 context,需要加一个 flag,FLAG_ACTIVITY_NEW_TASK。

singleTop,栈顶复用模式

有实例在栈顶的时候才复用。

singleTask,栈内复用模式

只要栈中有实例,就会复用。 自带 clearTop 效果,例如:栈内 ABCD,D 启动 singleTask 的 B,栈变为 AB。

singleInstance,栈外复用模式(单实例模式)

会新启动一个栈,创建实例。

注意

复用时会回调 onNewIntent() 方法。

问题

singleInstance 的 Activity 调用 startActivity 创建的 standard 属性的 Activity,这个新的实例在哪个栈里呢?

标志位

总结:Activity 的标志位功能不确定,需要自己去测试,并且文档里的描述也是不准确的。


分享这篇文章:

上一篇
Android Service在手机CPU休眠之后还会运行吗?
下一篇
Compilation is not supported for following modules:app