Android四大启动模式详解

CVTE面试的时候答的最烂的一个题目,没有之一。

废话不多说,因为只要学过Android都应该知道四个启动模式:standardsingleTopsingleTasksingleInstance


思考的问题

  • 到底是如何工作的呢?
  • 各自的应用场景?

standard、singleTop、singleTask针对的任务栈都是当前对应的app进程的,而singleInstance指向整个系统。

standard — 标准模式

Activity的默认启动方式。

standard图示

  • 特征:每次启动一个Activity都会创建一个实例。
  • 应用场景:默认情况。

singleTop — 栈顶复用

singleTop图示

  • 特征:如果在栈顶,就不在创建实例。反之则创建。
  • 应用场景:当前要跳转的页面已经在栈顶时,比如说消息通知跳转

singleTask — 栈内复用

singleTask图示

  • 特征:如果栈内存在,就将后入栈的实例全部弹出
  • 应用场景:有一个专用主页面作为基础的app,这样的app现在市面上也非常普遍存在,就比如一个Activity中嵌入ViewPager+BottomNavigationBar制作成的一个主页面一样,ViewPager中嵌入了很多的Fragment,这个时候如果是standardsingleTop的形式,很容易让应用卡顿。

注意点:

  • 如果其他App进程开启了Activity1,这个时候会创建新的任务栈

  • 如果以该启动模式启动的Activity1已经活动在后台的一个任务栈中,那么启动后,后台任务栈会一起切换到前台。


singleInstance — 全局唯一

跟前三种启动模式不同,他并不要求实例在同一个任务栈

singleInstance图示

  • 特征:系统中只会有一个实例。
  • 应用场景:系统内部的应用,比如电话、短信等功能,通过Intent进行传播时,固定的就会调用这些系统自带的应用,在自己的应用中一般比较少使用。
全部评论

相关推荐

点赞 评论 收藏
分享
04-10 08:14
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务