美文网首页
Activity启动模式

Activity启动模式

作者: Thisislife | 来源:发表于2017-12-18 16:52 被阅读0次

1、任务栈的概念

①任务栈是一个存储Activity的集合。
②当前程序的所有activity都有序的存放于该程序的任务栈中,只有栈顶的activity才是可视的、可以和用户交互。
③任务栈可以移动到后台,并保留activity的状态及信息
④当任务栈中的activity全部被清除时,此时任务栈被销毁,程序退出

2、任务栈的缺点

每次开启一个页面就会在任务栈中生成一个新的activity,而只有当全部activity都被清除时任务栈才被销毁,程序才能退出,不仅用户体验差而且可能导致内存占用过多甚至出现OOM。

3、四种启动模式

为了优化任务栈的缺点,于是出现了activity的启动模式LanchMode。

·standard

默认的启动模式,开启一个页面就在任务栈中创建一个activity示例,并存放于栈顶。

·singleTop

如果启动一个页面,此时恰好有该页面的activity实例在栈顶,则重复利用不再创建新的activity实例。适用于通知启动的页面,如新闻客户端。

·singleTask

如果启动一个页面,此时栈内恰好有该页面的activity实例,则清除该activity实例上面的所有activity实例,使该activity处于栈顶,显示出来。适用于程序入口点,如浏览器

·singleInstace

启动一个singleInstance模式的activity时,创建一个全新的任务栈用于存放该activity实例,并保证不再有其他的activity实例进入。适用于需要与主程序分离开的页面,如闹铃提醒,将提醒页面与其他页面分离。

3、Scheme跳转协议

1、服务器下发url路径,客户端通过url跳转到相应页面。
2、一个app页面通过scheme协议跳转到另一个页面
3、H5页面跳转到原生APP

相关文章

网友评论

      本文标题:Activity启动模式

      本文链接:https://www.haomeiwen.com/subject/mepmwxtx.html