您的位置:首页 > 其它

Activity的LaunchMode

2015-11-07 17:20 134 查看
关于android的启动模式 ,相信大家并不陌生,本人有幸购入《Android开发艺术探索》一书,个人认为作者写的不错 与大家分享。

standard:标准模式,也是系统的默认模式。创建的实例的生命周期符合典型情况,在这种模式下,该Activity会进入到启动该act的act的任务栈中。需要注意的是 如果我们用ApplicationContext启动startard模式时 会报AndroidRuntimeException 因为么有任务栈 所以必须加入FLAG_ACTIVITY_NEW_TASK

singleTop 栈顶复用模式 如果该ACT已经被建立且处于栈顶 则不会重新建立 会调用onNewIntent方法。

singleTask 栈内复用模式 单实例模式 只要Activity在栈中存在 则不会创建该实例。当一个singletask模式的act请求启动后,系统会寻找是否存在a想要的任务栈。如果存在该栈,则去寻找是否有该实例,如果存在该实例 则会调用onnewIntent.如果不存在则会压栈。

如果S1栈中AB 这时C 需要以singleTask模式启动 需要的任务栈s2 这时c所需的都没有 则会建立任务栈s2 且建立c实例 后压栈。

如果所需栈为s1 则直接压栈 如果栈中已有该实例 则直接调用该实例 abc 进栈b 则栈内历史为ab 清除c Activity 与clearTop类似。

singleInstance 单实例模式 只能该Act处于独立任务栈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: