zoukankan      html  css  js  c++  java
  • 06 Activity的启动模式 Intent的七大属性的总结

    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


  • 相关阅读:
    POJ2778 DNA Sequence AC自动机上dp
    codeforces732F Tourist Reform 边双联通分量
    codeforces786B Legacy 线段树优化建图
    洛谷P3588 PUS 线段树优化建图
    codeforces1301D Time to Run 模拟
    codeforces1303B National Project 二分或直接计算
    codeforces1303C Perfect Keyboard 模拟或判断欧拉路
    codeforces1303D Fill The Bag 二进制应用+贪心
    python之路——使用python操作mysql数据库
    python之路——mysql索引原理
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152289.html
Copyright © 2011-2022 走看看