温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android的四种启动模式

发布时间:2020-07-09 00:27:07 来源:网络 阅读:320 作者:YuLi1207 栏目:移动开发

 对Android的启动模式不是很了解,这里记录下简单的理解内容以便日后查看。

 Androi的四种启动模式分别为:standard,singleTop,singleTask,singleInstance。为Activity指定启动模式有两种方法,第一种是通过AndroidManifest.xml中为Activity指定添加launchMode

Android的四种启动模式

 第二种就是通过Intent来设置标志位来指定Activity的启动模式,两者有区别,优先级上是第二种高于第一种。

 standard是系统默认的启动模式,也就是说设不设置launchMode都是标准模式,每次启动一个Activity都会重新创建一个新的实例,如有个Activity为A跳转本身时,A->A1->A2,都会产生新的界面,当按back键时后退顺序为A2->A1->A,依次退出。


 singleTop与设置标记位FLAG_ACTIVITY_SINGLE_TOP效果相同,当该实例位于栈顶时就不再创建同时onNewIntent方法会被回调,在此方法中可以得到回调信息,如Activity A跳转本身,点击多次都不再跳转新的界面,但是当A->B->A1时,A不在栈顶产生新的实例A1,退出时A1->B->A。


 singleTask与设置标记位FLAG_ACTIVITY_NEW_TASK效果相同,与singleTop一样系统会回调其onNewIntent方法,当跳转本身时不会再产生新实例,如果已有实例会把其调到栈顶,如果没有则会创建并压入栈中,如A->B->C->A,A为singleTask如果此时退出则直接退到桌面,因在A实例已存在把其调到栈顶时会把栈内A上面的BC全部出栈,如A->B->C,退出时C->B->A。


 singleInstance比较复杂其拥有singleTask的特性又加强了一点,具有此种模式的Activity只能单独的位于一个栈内。当跳转本身时也不会再产生新的实例,当A->B->C->B,此时B为singleInstance模式,退出时为B->C->A,当A->B->C,退出为C->A->B,因此时B在一个栈内,A与C在另一个栈内,一个栈内退出后再退另一个栈。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI