详解Activity启动模式(一)一些相关的基本概念

本系列将分三篇文章详细分析Android中Activity启动模式相关的林林总总。

  1. 详解Activity启动模式(一)一些相关的知识点
  2. 详解Activity启动模式(二)Activity的四种启动模式——LaunchMode
  3. 详解Activity启动模式(三)Intent Flags

在Androi的应用程序中,大家最常用的组件莫过于Activity了。要打造一款体验良好的应用,界面的引导和跳转是值得深入的重要内容。从用户角度来讲,与页面的跳转逻辑关联比较紧密的概念是Task(任务)和Back Stack(回退栈)。而Task和Back Stack深受Activity的启动模式的影响。

在开始讨论Activity启动模式之前,我们首先来了解下相关的知识点。

牵涉到的几个概念。

Application

Application简单翻译过来就是“应用”或“应用程序”,也就是我们常用的一个APP。从程序维度简单来讲,Application就是一个个组件的集合,包含四大组件等所有内容。Mainfest文件中注册了所有用到的组件信息。

Task和Back Stack

Task是一个从用户角度出发的概念,是一些Activity的组合,是在程序运行时针对Activity存在于FrameWork层的概念。Task内的activity们以栈的形式组织起来,控制界面的跳转和返回也就是我们所了解的back stack。
另外栈不仅仅只包含自身程序的Activity,他也可以跨应用包含其他应用的Activity,这样有利于保障用户体验,维护用户操作体验上的完整性。
例如,在我们的应用中的一个Activity A中点击发送邮件,会启动邮件程序的一个Activity B来发送邮件,这两个activity是存在于不同app中的,但是被系统放在一个任务中,这样当发送完邮件后,用户按back键返回,可以返回到原来的Activity A中,这样就确保了用户体验。

Process

Process一般翻译为进程,进程是操作系统层级的概念。从应用程序的角度,我们的APK程序运行于Dalvik中或者ART虚拟机中,每个程序默认占用一个进程。开发者也可以在Mainfest中用process属性指定每个组件所运行的进程名。如:

 <activity android:name=".MyActivity" android:label="@string/app_name"
     android:process=":remote">
 </activity>

Activity 的几种属性

  1. android:taskAffinity

简单翻译为task的亲属关系。也就是该Activity所属的Task栈。是否定义了该属性,对接下来讨论到的singleTask影响甚大:如果设置了Activity的taskAffinity属性值,Activity将在TaskName为指定值的独立Task中启动,否则,将在原来的默认Task中。这将在接下来的系列文章详解。

  1. android:allowTaskReparenting

默认false,程序A已经启动了数个Activity,其中包含Activity1,如果这个Activity1拥有该属性,当程序B也要启动它的时候,其可宿主到程序B内。

  1. android:alwaysRetainTaskState

默认false,操作系统会在程序长时间不会动的时候,清除Task状态,如果开启这个,系统会继续保持直到再次打开,只对根Activity生效

  1. android:clearTaskOnLaunch

默认false,如果开启,从桌面重新进入程序时,只会存在根Activity,如有其他程序的Activity,他们将会寻找宿主,这个属性也只对根生效

  1. android:finishOnTaskLaunch

默认false,如果开启,程序重新启动,会销毁所有存在的Activity,也只对根Activity生效

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容