• 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


  • 相关阅读:
    Abp Hangfire 占用 PostgreSql 连接数的另类解决方案
    Git 仓库中文件大小写重命名实践(Windows 环境)
    C# WinForm 文件夹选择控件 folderBrowserDialog 的应用实例
    使用 C# 修改文件创建时间(图片也可修改)
    ABP 在 EntityFramework 中使用扩展批量更新时的异常
    Visual Studio之“生成事件”实践
    博客专家纪念
    深入浅出-应用服务
    如何管理 .NET Core 工具
    深入浅出-可定制仓储设计
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152289.html
Copyright © 2020-2023  润新知