Activity启动模式介绍
2016-04-27 20:53
381 查看
# Activity启动模式
栈的创建特性,这里假设A是singleInstance,BCD是其它模式,现在调用顺序为:A->B->A->C->D,返回时的顺序是D->C->B->A。
A和A所在的栈同时只会存在一个,已经存在了就不会在重新创建,但是onNewIntent(Intent intent)方法会被回调;
因为BCD和A不在一个栈内,只有BCD所在的栈的Activity弹出以后才会从A所在的栈中弹出新的Activity。
特有属性:A为singleTask,BCD为非singleInstance,A-B-C-D-A会清除栈中的BCD,最终栈中只剩A。
A不会重新创建但onNewIntent(Intent intent)会被调用;
A..-..-A会清除当前栈中A-A之间的所有Activity。
特有属性:A为singleTop,A->A,栈中还是只有一个A。
A在栈顶,A启动A,A不会重新创建,onNewIntent(Intent intent)会被调用;
其它时候和standard一样。
启动模式 | 模式介绍 |
---|---|
singleInstance | 如果Activity没有创建过或者已经销毁,会创建一个新的栈,并且一个singleInstance的Activity占一个特殊的栈,在Activity销毁的时候栈也会随之销毁。简单总结为单例,单独栈。 |
singleTask | Activity不会创建单独的栈,如果A为singleTask且A为当前显示的Activity,在A内再次启动A,A不会重新创建,onNewIntent(Intent intent)方法会被回调。A->B->C->D-A,假如BCD都是不是singleInstance,这时候栈内只剩A。 |
singleTop | Activity不会创建单独的栈,如果A为singleTask且A在栈顶,在A内再次启动A,A不会重新创建,onNewIntent(Intent intent)方法会被回调。A->B->C->D-A,假如BCD都是不是singleInstance,这时候栈内为A->B->C->D-A,这是和singleTask区别。 |
standard | 这是默认的Activity启动模式,启动新的Activity或者返回都是遵循栈的模式。 |
singleInstance 单例模式
会创建一个新的Activity栈,并且会独占这个栈。
栈的创建特性,这里假设A是singleInstance,BCD是其它模式,现在调用顺序为:A->B->A->C->D,返回时的顺序是D->C->B->A。
A和A所在的栈同时只会存在一个,已经存在了就不会在重新创建,但是onNewIntent(Intent intent)方法会被回调;
因为BCD和A不在一个栈内,只有BCD所在的栈的Activity弹出以后才会从A所在的栈中弹出新的Activity。
singleTask 栈内单例模式
不会创建单独的栈,如果栈内已经存在,不会重新创建onNewIntent(Intent intent)会被调用。
特有属性:A为singleTask,BCD为非singleInstance,A-B-C-D-A会清除栈中的BCD,最终栈中只剩A。
A不会重新创建但onNewIntent(Intent intent)会被调用;
A..-..-A会清除当前栈中A-A之间的所有Activity。
singleTop 栈顶单例模式
不会创建单独的栈,如果在栈顶的时候再次启动当前Activity,不会创建新的Activity,onNewIntent(Intent intent)会被调用。
特有属性:A为singleTop,A->A,栈中还是只有一个A。
A在栈顶,A启动A,A不会重新创建,onNewIntent(Intent intent)会被调用;
其它时候和standard一样。
standard 基本模式
这是默认的Activity启动模式,启动新的Activity或者返回都是遵循栈的模式。
相关文章推荐
- Activity的LaunchMode
- 深入讲解Android中Activity launchMode
- Android使用Home键后应用程序重启的问题
- android launchmode
- Activity的四种启动模式详解
- Activity A启动Activity B,在B中按Home回到主屏幕,按menu时呈现后台app任务列表,如何让刚退出的app的界面显示为A,而不是退出时的B
- Activity的四种启动模式 LaunchMode
- Actvity的四种Launchmode
- Activity launchMode,taskAffinity,Intent.Flag
- Activity launchMode四分之一 ----standard
- Android Activity启动模式(launchMode)
- 【菜鸟学安卓】-Intent 初探二 有关界面的转换问题
- Android笔记--对Android的四种LaunchMode和smail文件和scheme和http 的get、post的理解
- Activity中的启动模式(launchMode)简单理解
- Activity的四种launchMode
- activity启动模式详解
- android activity launchmode
- 任务和回退栈
- Activity的启动模式与吸附值详解