关闭

Activity的四种启动模式

标签: 模式结构实例task启动
240人阅读 评论(0) 收藏 举报
分类:

Activity的四种lunchmode模式,lunchmode在activity中扮演着重要的部分,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。

Activity一共有以下四种launchMode:

1.standard
2.singleTop
3.singleTask
4.singleInstance

在manifest.xml文件中,我们可以为Activity指定launchMode
如下:

<activity
android:name=".AMainActivity"
android:label="@string/app_name"
android:launchMode="standard"
>
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />  </intent-filter>
 </activity>

一、standard

这个是系统的默认的启动模式,说的简单点,我们在使用startActivity()方法的时候,系统就会启动一个新的Activity实例,不管它先前启动没有。

点击standard.
这里写图片描述

二、singleTop

如果当前要创建的Activity就在任务栈的顶端,那么不会创建新的Activity,仅仅调用Activity的onNewIntent,如果不在栈顶(或者栈中没有该Activity),那么还是会创建新的Activity。

点击两次B singleTop
这里写图片描述

三、singleTask

如果已经有其他的Task并且包含Activity实例,那就直接调用那个Task的实例。(只有一个Task中会有) 而不是创建一个新的实例。重点:假如你启动一个singleTask的Activity,同时这个Activity在background task中,那么整个background task都会被调入到前台来。下面这幅图就很好的说明这个问题。

点击A singleTask
这里写图片描述

四、SingleInstance

如果前台Activity启动后台任务的Activity,如果后台任务栈中已经有该Activity,那么就会调用该Activity的onNewIntent,并且后台任务还是在后台。如果后台任务栈中没有该Activity,那么会重新创建一个Acitivyt,并单独放入一个任务栈,其实在启动该Acitivity的Intent中也会加入上述标记

这里写图片描述

整体下来就是这样子的,下次讲onNewInent()的调用机制

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Activity 四种启动模式的区别

Android Activity 四种启动模式的区别 分享到: 通过昨天的学习,相信大家已经对Android Activity的四种启动模式有了非常清楚的认识,那么,Android...
  • zhang31jian
  • zhang31jian
  • 2013-12-17 17:00
  • 4405

Activity的四种启动模式和应用场景

小结 使用方式: standard:怎么样都要创建 singleTop:顶上不是target Activity,new一个 singleTask:顶上不是target Activity,移除targe...
  • wangxueming
  • wangxueming
  • 2017-06-15 17:56
  • 752

Activity四种启动模式详解

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

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

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

Activity四种启动模式说明

1,standard标准模式: 每次启动一个Activity都会重新创建一个实例,即调用Activity创建时的生命周期方法onCreate,onStart,onResume;被启动的Activity...
  • u011959433
  • u011959433
  • 2016-03-21 15:54
  • 1996

Activity四种启动模式的利用场景

一.singleTask: 场景1: 需求说明:如果自己的客户端处于运行状态,按下Home键后台挂起。此时如果使用微信调起自己的客户端某 个页面,不做任何处理的情况下,按下回退或者当前Activi...
  • berber78
  • berber78
  • 2014-02-21 16:42
  • 10324

彻底弄懂Activity四大启动模式

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

Activity的四种启动模式

活动是有四中启动模式的。这四种分别是standard模式、singleTop模式、singlTask模式以及singleInstance模式。其中standard模式是活动的默认启动模式。 活动的启...
  • qq_34902522
  • qq_34902522
  • 2017-01-07 13:24
  • 142

Activity的四种启动模式-图文并茂eclipse设置详解

在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。 ...
  • Guofengpu
  • Guofengpu
  • 2016-07-28 19:57
  • 474

浅谈Activity的四种启动模式

本文主要聊聊Activity的四种启动模式,请看文章!
  • itluochen
  • itluochen
  • 2016-09-20 19:31
  • 1480
    个人资料
    • 访问:37452次
    • 积分:743
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:14篇
    • 译文:1篇
    • 评论:13条
    文章分类
    最新评论