面试复习一 Activity启动模式(2)

原创 2018年04月17日 18:09:33

Activity启动模式

1、设置启动模式

一般地,我们可以直接在AndroidManifest.xml 标签的一个属性中设置launchMode,如下:

<activity
 android:name=".ExampleActivity"
 android:label="singleTask launchMode"/>

2、四种动模式认识

  • standard:标准模式 系统的默认模式,每次启动一个Activity都会重新创建一个新的实例,不管这个实例是否已经存在。被创建的实例的生命周期符合典型情况下Activity的生命周期,它的onCreate,onStart,onResume都会被调用。这是一种典型的多实例实现,一个任务栈中可以有多个实例,每个实例可以属于不同的任务栈。在这种模式下,谁启动了这个Activity,那么这个Activity就会运行在启动它的那个Activity的任务栈中。
  • singleTop:栈顶复用模式 如果新的Activity已经位于任务栈的栈顶,那么此Activity不会被重新创建,同时它的onNewIntent方法会被回调,通过此方法的参数我们可以取出当前请求的信息。需要注意的是,这个Activity的onCreate,onStart不会被系统调用,因为它没有发生改变。如果新Activity的实例已存在但不是位于栈顶,那么新Activity仍然会被重建。
  • singleTask:栈内复用模式 这是一种单实例模式,在这种模式下,只要Activity在一个栈中存在,那么多次启动Activity都不会重新创建实例,和singleTop一样,系统也会回调其onNewIntent。详细来说,当一个具有singleTask模式的Activity请求启动后,系统首先会寻找是否存在这个Activity想要的任务栈,如果不存在,就重新创建一个任务栈,然后创建这个Activity的实例后放到栈中。如果存在这个Activity所需的任务栈,这时候看栈中是否存在这个Activity的实例,如果有实例存在,那么系统就会把这个Activity调到栈顶并调用它的onNewIntent方法,如果实例不存在,就创建这个Activity的实例并压入栈中。
  • singleInstance:单实例模式 这是一种加强的singleTask模式,如果某个Activity是singleInstance模式,当这个Activity启动以后,系统会为它创建一个新的任务栈,然后Activity独自在这个新的任务栈,由于栈内复用的特性,后续的请求均不会创建新的Activity,除非这个独特的任务栈被系统销毁了。

Android中的Activity四种启动模式(launchMode)(面试必问)

android:launchMode standard 默认标准的启动模式,每次startActivity(Intent intent)请求都创建一个新的activity实 例,适用于大多数场景。 ...
  • u013128651
  • u013128651
  • 2016-04-10 19:18:17
  • 320

Android面试——Activity的四种启动模式

前言今天开始,会逐步总结Android面试可能遇到的各种问题及其知识点总结。为的就是今天4月份的晋升面试或者更好机会的面试能够拿出100%的状态。有兴趣的同学,也可以关注我的Android面试文件夹。...
  • zinss26914
  • zinss26914
  • 2016-01-25 16:34:19
  • 1254

Activity的启动模式

  • 2012年10月17日 11:11
  • 122KB
  • 下载

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

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

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

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

彻底弄懂Activity四大启动模式

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

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

在开发项目中我们可能会经常遇到,
  • u010897392
  • u010897392
  • 2014-08-07 09:31:33
  • 1722

Android Activity启动模式的设置

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

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

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

Android基础之Activity四种启动模式和task相关

1 启动模式介绍   启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置; 启动模式有4种,分别为sta...
  • chenliguan
  • chenliguan
  • 2015-08-03 22:49:30
  • 476
收藏助手
不良信息举报
您举报文章:面试复习一 Activity启动模式(2)
举报原因:
原因补充:

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