activity启动模式(1)

原创 2017年01月03日 01:32:08

activity启动启动模式:
网上大牛写的我自己再一遍,方便自己记忆。
原文地址:http://blog.csdn.net/liuhe688/article/details/6754323

一。Activity 有四种启动模式:
1.standard
2.singleTop
3.singleTask
4.singleInstance


二。什么是task?task是一个具有栈结构的对象,一个task可以管理多个activity。启动一个应用,也就创建一个与之对应的task。


1.standard 启动模式是系统默认启动模式
看图
这里写图片描述
每次启动都会在task中生成新的activity实例,并且放到task顶部,回退时,task中退出一级。
简单点理解:**standard启动模式Activity栈从栈底到栈顶顺序为A1 -> B -> C -> A2…。(其中A、B、C等都表示不同的Activity实例,A1、A2则表示属于具有同一Activity类的不同实例)


2.singleTop(栈顶唯一)启动的时候系统判断栈顶是否有该实例,有则继续使用,没有启动新的。
如图:这里写图片描述 图中sectond启动first时候发现栈顶没有first则启动新的activity 于是有了图的机构。

简单理解:如果发现有对应的Activity实例正位于栈顶,则重复利用,不再生成新的实例。

简单点理解,singleTop即表示当前Activity栈中“栈顶唯一”,Activity跳转顺序或standard模式下栈结构如果为:A -> B -> C -> D1 -> D2,则singleTop启动模式为:A -> B -> C -> D1(此时回调D1的onNewIntent()..)。

特别注意:如果要启动的activity存在并且在栈顶,则会调用该activity的onNewInten()方法。


3.singleTask。启动activity时候系统首先检查栈中有无所要启动的activity。有但是不再栈顶,则把它之上所有的activity统统出栈,这样它也便在栈顶了处于显示状态。若果有并且在栈顶那更好,栈结构没有任何变化。如果没有则实例化新的。
如图:
这里写图片描述

简单理解:**如果发现所在Activity栈中有对应的Activity实例,则使此Activity实例之上的其他Activity实例统统出栈,使此Activity实例成为栈顶对象,显示到幕前。
简单点理解,singleTask表示当前Activity栈中“实例唯一”,Activity跳转顺序或standard模式下栈结构如果为:A -> B1 -> C -> D -> B2,则singleTask启动模式为:A -> B1(此时回调onNewIntent()..)**
注意:也是再次调用onNewIntent()方法。


4singleInstance 这种模式它会启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入。
图:这里写图片描述
简单理解:singleInstance所标识的Activity,当被启动时,系统会首先判断系统其他栈中是否已经存在此Activity实例,有则直接使用,并且其所在的Activity栈理论上只有它一个Activity元素。所以启动它的Activity与它并不在一个task中,所以才需要特别注意Back的问题。一般表示为:task1 A -> task2 B。

详细请看作者原文:http://blog.csdn.net/liuhe688/article/details/6754323

版权声明:本文为博主原创文章,未经博主允许不得转载。

[Android开发]Activity的四种启动模式及其应用场景

启动模式(launchMode)在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用...
  • CodeEmperor
  • CodeEmperor
  • 2016年01月08日 11:39
  • 15191

Activity四种启动模式详解

最近在学习《Android开发艺术探索》,所以对所学习到的知识做个总结,就算是做笔记吧。 Activity的启动模式目前有四种,分别是standard、singleTop、singleTask和si...
  • Mr_wzc
  • Mr_wzc
  • 2016年06月23日 20:16
  • 2671

彻底弄懂Activity四大启动模式

最近有几位朋友给我留言,让我谈一下对Activity启动模式的理解。我觉得对某个知识点的理解必须要动手操作才能印象深刻,所以今天写一篇博文,结合案例理解Activity启动模式。由于之前看过“区长”的...
  • mynameishuangshuai
  • mynameishuangshuai
  • 2016年05月24日 16:04
  • 58791

Android基础:最易懂的Activity启动模式详解

前言 Android基础中的Activity启动模式非常重要 本文将介绍对Activity启动模式进行全面介绍 目录1. 定义即Activity启动的方式2. 启动模式的类别Android启动提供了四...
  • carson_ho
  • carson_ho
  • 2017年01月22日 16:59
  • 3691

Android Activity 的四种启动模式

在实际开发中,应根据特定的需求为每个Activity制定恰当的启动模式。Activityde 的启动模式有四种。分别是standard、singleTop、singleTask和singleInsta...
  • YeeCeeYee
  • YeeCeeYee
  • 2017年03月22日 21:47
  • 302

Activity的四种启动模式的介绍及其应用场景

应用场景: 1.singleTop适合接收通知启动的内容显示页面。例如,某个新闻客户端的新闻内容页面,如果收到10个新闻推送,每次都打开一个新闻内容页面是很烦人的。聊天的对话窗口, 2.sing...
  • JustinNick
  • JustinNick
  • 2016年09月13日 22:30
  • 2534

Android四大组件---Activity之启动模式及启动模式的应用场景

在“Android性能优化”中有这么一条规则:    复用、回收Activity对象: 临时的activity及时finish, 主界面Activity启动模式设置singleTask,一般界...
  • u012810020
  • u012810020
  • 2016年01月11日 20:39
  • 1408

关于代码实现activity的启动模式

在开发项目中我们可能会经常遇到,
  • u010897392
  • u010897392
  • 2014年08月07日 09:31
  • 1629

Android Activity启动模式的设置

Android为了使我们能够打破默认的堆栈的先后出的模式,提供了两个种方式:一种是在AndroidManifest.xml定义Activity时指定它的加载模式,另一种是在用Intent开启一个Act...
  • u011361576
  • u011361576
  • 2013年11月02日 11:22
  • 2974

对于Android的Activity启动模式的一些总结和理解

安卓Activity的启动模式 1.1   两种启动方式 1.      在AndroidMainfest.xml中启动 例如: AndroidMainfest.xml.xml中设置Activity的...
  • u010335298
  • u010335298
  • 2016年10月13日 14:55
  • 1359
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:activity启动模式(1)
举报原因:
原因补充:

(最多只允许输入30个字)