1.Task以及back stack

    >Task(任务)  为了完成一个功能  多个Activity的集合,

    当你的应用程序启动时 系统会自动创建Task用于管理Activity



    >Back stack:(回退栈)按照Activity启动顺序 后进先出

    



2.Activity的启动模式:(*******)

    android:launchMode="standard"

    >1,standard:默认模式  (拿来主义)   每次都会创建一个新的Activity(多次实例化)

       

    android:launchMode="singleTop"

    >2,singleTop(拒绝堆叠)

        >1,没有这个Activity 直接创建

        >2,如果有 并且在栈顶  直接拿来使用 调用onNewIntent(Intent intent)方法

        >3,如果有  没有在栈顶  重新创建一个Activity实例

        

    >3,singleTask:(独立门户)

        >1,没有Activity直接创建

        >2,如果有 并且在栈顶  直接拿来使用  调用onNewIntent(Intent intent)方法

        >3,如果有  没有在栈顶  将在它上方的 Activity pop出去  自身有回到栈顶位置调用onNewIntent(Intent intent)方法



    >4,singleInstance (孤独寂寞)(这个用法不多  浪费空间)

        >系统会单独分配一个stack  不允许其他的Activity和他共享一个stack

3.Intent的七大属性



        跳转:

            1,显示意图跳转:知道往哪里跳转(ComponentName)

            2,隐式意图跳转:不知道往哪里跳转  只要action一致就可以(action)



    >1,ComponentName:应用组件名称  根据组件名称可以进行显示跳转(知道往哪里跳转)

    >2,Action:动作

        >1,自定义

          <!-- 注册Activity   设置动作 :必须有意图过滤器-->

            <activity android:name=".SecondActivity">

                <intent-filter >

                <action android:name="包名.类名"/>唯一

                <category android:name="android.intent.category.DEFAULT"/>

                </intent-filter>

            </activity>

        >2,系统提供



        Uri:资源定位符

        Uri遵循的格式:scheme://host:port/path

            scheme:http  file  content

            host:IP

            port:端口号

            path:请求的路径



    >3,Category:(种类) 指明动作的环境

        >android.intent.category.LAUNCHER:程序启动的

        >android.intent.category.DEFAULT :系统默认的执行方法



        >在清单文件中 有action  必然跟category 否则程序报错

    >4,Data:数据   描述action数据

    >5,Type:数据的类型

    >6,putExtra:通信数据的   intent.putExtra(key,value);

    >7,Flag:标记 (一般用于启动模式)

        >FLAG_ACTIVITY_SINGLE_TOP:和启动模式里的SingleTop一致



        >FLAG_ACTIVITY_CLEAR_TOP:

        和SingleTask相似 >如果当前Activity存在   不在栈顶

                    首先将上方的Activity pop出 将自身的Activity销毁 重新创建一个Activity 在栈顶

                 >如果当前Activity存在   在栈顶  将将自身的Activity销毁 重新创建一个Activity 在栈顶

        

        >FLAG_ACTIVITY_NEW_TASK

            >1,不在清单文件中设置 和默认启动模式是一致的

            >2,在清单文件中设置属性  

                android:taskAffinity="aa.bb"

                android:allowTaskReparenting="true"



                



                taskAffinity用于指定当前Activity(activity1)所关联的Task,

                allowTaskReparenting用于配置是否允许该activity可以更换从属task

06 Activity的启动模式 Intent的七大属性的总结的更多相关文章

  1. 无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)

    1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCrea ...

  2. android Activity的启动模式与flag的见解

    最近做一个安卓项目,想要实现的效果就是:当打开一个按钮的时候,启动了一个A功能,当用户返回到桌面再继续进去的时候,不过之前在哪个Activity,都会先跳转到A功能的那个界面,当用户点击返回的时候,再 ...

  3. android Activity的启动模式

    Android中Activity启动模式详解   在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启 ...

  4. Activity的启动模式(android:launchMode)

    在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同: ...

  5. 4种activity的启动模式

    在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同: ...

  6. Activity的启动模式及回退栈的概念

    Activity的启动模式 standard 正常模式 在创建一个新的activity的时候,直接在栈顶创建一个新的activity singleTop 顶部单个 在创建一个新的activity的时候 ...

  7. Activity 的启动模式

    好久没用过那几种activity的启动模式了,如今看到singletop竟然傻了眼,完全忘记了这几种启动模式的区别!隧将两年前的总结翻出来,通读一遍那晦涩难懂的记录,又理解了一遍,在以前记录的基础上, ...

  8. Activity LauchMode启动模式(转载)

    转载于:http://www.cnblogs.com/plokmju/p/android_ActivityLauncherMode.html 在一个Android应用中,不可避免的会包含多个Activ ...

  9. Android开发艺术2之Activity的启动模式

    Activity是Android的四大组件之一,他的重要性毋庸置疑,对于这么重要的一个组件,我们首先要知道这些都是由系统进行管理和回调的,要理解Activity的启动模式,我们首先来了解一下Andro ...

随机推荐

  1. hihocoder #1073 : 光棍节

    描述 尽管付出了种种努力,jzp还是得过光棍节. jzp非常不爽,但也无能为力,只能够哀叹起来他的命运.他想到了一位长者的人生经验:"人的一生,不光要靠自我奋斗,也要考虑历史的进程" ...

  2. Java Servlet 笔记3

    Servlet 表单数据 很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序.浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法. 1. ...

  3. C语言程序设计第二次作业--顺序结构

    C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...

  4. C语言程序设计预备作业。

    1. 阅读邹欣老师的博客--师生关系,针对文中的几种师生关系谈谈你的看法,你期望的师生关系是什么样的? 答:我理想中的师生关系是Coach/Trainee(健身教练/健身学员)的关系.因为邹老师就如同 ...

  5. Java类加载器的工作原理

    Java类加载器的作用就是在运行时加载类.Java类加载器基于三个机制:委托.可见性和单一性.委托机制是指将加载一个类的请求交给父类加载 器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它. ...

  6. 正则替换replace中$1的用法以及常用正则

    一.repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. stringObject.replace(regexp/substr,replacement)参数一 ...

  7. RabbitMQ用户管理

    rabbitmq常用命令 add_user        <UserName> <Password> delete_user     <UserName> chan ...

  8. vim基本操作

    Vim 是 Linux 系统上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版,而 gVim 则是其 Windows 版.它的最大特色是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门 ...

  9. javascript实现图片的预览

    简单javascript代码 实现上传图片预览 <body> <!-- 设置当有图片准备上传时触发javascript代码--> <input type="fi ...

  10. 工作流程,编程,调试,性能:Unity游戏开发者应该学习的20个改进技巧

    Unity 是一个备受欢迎的游戏开发平台.它的功能令人印象深刻,同时也迎合了不同的游戏开发需求.游戏开发者可以使用 Unity 创建任何类型的游戏,从世界级的 RPG 游戏到最流行的增强现实游戏 Po ...