首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Activity启动模式SingleTask和Intent.FLAG_ACTIVITY_CLEAR_TOP区别

4种启动模式 standard:标准模式,也是系统默认的启动模式,如果一个 Activity 的启动模式是 standard,则该 Activity 可以被多次实例化,且可以在不同的任务栈中存在。...而且每次启动一个 Activity ,都会重新创建新的实例,不管这个实例在任务中是否已经存在。...singleTop:栈顶复用模式,如果一个 Activity 的启动模式是 singleTop,则该 Activity 可以被多次实例化,且可以在不同的任务栈中存在,且一个任务栈可以存在多个 singleTop...B,则创建新的 activity B 实例压入栈(也就是一个任务栈存在多个实例)。...在第一次启动这个 Activity 时,系统便会创建一个新的任务栈,并且初始化 Activity 的实例,放在新任务栈的底部。

1.1K10

【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )

) 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 ) ---- 文章目录...Android 插件化系列文章目录 一、插件包 Activity 启动原理 二、分析主线程中创建 Activity 实例源码 1、LaunchActivityItem 2、ActivityThread...替换插件包中的 Activity , 之后 AMS 执行完毕 , 执行到主线程 实例化 Activity 对象之前 , 还要替换回去 ; 插件包组件启动方式 : 使用 Intent 启动插件包时 ,...与 Hook 无关 , 直接开始分析 主线程中的 Activity 实例化操作 ; Activity 实例化的起点 , 从 LaunchActivityItem 源码开始分析 ; LaunchActivityItem...目前是占坑 Activity 即 StubActivity // 需要在实例化之前 , 替换成插件包中的 Activity

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    APK安装流程详解1——有关安装ing的实体类概述

    它是没有实现Parcelable接口,但是它提供了入参是Parcel的构造函数,以及writeToParcel()方法给它的子类来实现ComponentInfo内部这部分的成员的Parcel化。...public boolean enabled:当前组件是否被实例化,boolean类型,从"android:enabled"属性得到,如果它所在的Application中的enable为false,则这处的设置无效...2、重要方法简介: public ComponentInfo():构造函数 public ComponentInfo(ComponentInfo orig):构造函数,传入一个ComponentInfo...,其实就是拷贝 protected ComponentInfo(Parcel source):构造函数,传入一个source,然后从source里面取出相应的值来完成字段的初始化 public CharSequence...public int persistableMode:activity持久化的模式,对应着AndroidManifest的"android:persistableMode"属性,它有三个模式如下: public

    1.6K30

    Android中ActivityManager学习笔记(1)-MemoryInfo「建议收藏」

    ActivityManager 与系统中所有的Activity进行交互的类。官网一句话解释了这个东西,但是有点随意了。...下面我通过实例,一步一步学习它的具体作用,我也是刚学,不能从宏观的角度给大家解释清楚它的具体作用。希望通过程序一步一步的写下去,其每个方法的作用也就清楚了,从而我们就知道它能干什么啦。...首先我们创建一个程序,在入口Activity里的onCreate()方法里,我们来创建ActivityManager....ActivityManger对象.在官方文档中,并没有提供构造方法,所以我们不能通过new的方式创建该对象,由于ActivityManager是核心服务,所以android从系统服务里得到它的实例。...info.describeContents();// 数据包裹的描述 Log.i(TAG, "describeContents: " + describeContents); } } 可惜,获得信息为空,也就无法打印信息查看

    75540

    【Android 逆向】Android 权限 ( 查看内存信息 | 查看 CPU 信息 | 查看电池信息 | 查看账户信息 | 查看 Activity 信息 | 查看 Package 信息 )

    文章目录 一、查看内存信息 二、查看 CPU 信息 三、查看电池信息 四、查看账户信息 五、查看 Activity 信息 六、查看 Package 信息 一、查看内存信息 ---- 查看系统内存详细信息...0.3% softirq walleye:/ # 三、查看电池信息 ---- 使用如下命令 , 查看 电池 信息 : 输出电量相关信息 ; dumpsys battary 完整的命令行输出 : 当前的环境无法输出电量使用信息...com.google.ar.core, 2 com.google.android.apps.messaging, 2 walleye:/ # walleye:/ # 五、查看 Activity...信息 ---- 使用如下命令 , 查看 账户 信息 : 输出当前系统中所有的注册过的 Activity 信息 ; dumpsys activity 使用如下命令 , 查看当前正在运行的 Activity...信息 ; dumpsys activity top 六、查看 Package 信息 ---- 使用如下命令 , 查看 Package 信息 : 输出当前系统中安装的所有应用 Package 相关信息

    10.6K20

    Flutter项目 安卓 运行时闪退解决方案

    target-platform android-arm64 编译后, 将打包完后的apk文件安装只Andriod studio自带的模拟器, 打开后直接白屏闪退, 因为我使用Vscode进行开发, 在debug模式下依旧无法查询到报错...00-00 00:00:00.000 7754 7754 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity...ComponentInfo{cn.timemail.xsot/cn.timemai.xsot.MainActivity}: java.lang.ClassNotFoundException: Didn't.../lib64, /system_ext/lib64]] 这里的包名也就不隐藏了, 可以看到错误信息为java.lang.RuntimeException: Unable to instantiate activity...ComponentInfo 查询过后, 发现是因为Flutter的默认包名 好像是 com.example.flutter还是什么,但是我讲其直接修改为了cn.timemail.xsot 但是在manifest.xml

    6.2K20

    APK安装流程详解2——PackageManager简介

    的标志位,返回与该组件(ComponentInfo)相关联的(metaData)数据(android.os.Bundle)。...ContactsList中的一个Activity类 入参params flags 附加选项的标志位,你可以理解为筛选条件,可以使用的标志位为: GET_META_DATA :ComponentInfo...入参params flags 附加选项的标志位,你可以理解为筛选条件,可以使用的标志位为: GET_META_DATA :ComponentInfo的标志位,返回与该组件(ComponentInfo)...PackageInstallObserver, int, String, Uri, ManifestDigest,ContainerEncryptionParams)这个方法,因为老版本的observer无法获得额外的故障细节...PackageInstallObserver, int, String, Uri, ManifestDigest,ContainerEncryptionParams)这个方法,因为老版本的observer无法获得额外的故障细节

    3.3K30

    【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )

    混淆配置中配置保留行数 ; # 保留行数 -keepattributes SourceFile,LineNumberTable 当代码混淆后 , 如果出现报错信息 , 此时报错信息全部都是被混淆过的信息, 无法从中找出可用的信息...EXCEPTION: main Process: kim.hsl.handler, PID: 28142 java.lang.RuntimeException: Unable to start activity...ComponentInfo{kim.hsl.handler/kim.hsl.handler.MainActivity}: java.lang.NullPointerException: Attempt...Handler.java:30) at kim.hsl.handler.MainActivity.onCreate(MainActivity.kt:24) at android.app.Activity.performCreate...(Activity.java:8085) at android.app.Activity.performCreate(Activity.java:8073) at android.app.Instrumentation.callActivityOnCreate

    1K00

    【错误记录】Navigation 导航组件报错 ( Activity xxActivity@3f does not have a NavController set on 2131xx )

    ComponentInfo{kim.hsl.nav/kim.hsl.nav.MainActivity}: java.lang.IllegalStateException: Activity kim.hsl.nav.MainActivity...(Activity.java:7144) at android.app.Activity.performCreate(Activity.java:7135) at android.app.Instrumentation.callActivityOnCreate...布局文件代码如下 : 这是 Android Studio 中通过可视化操作自动生成的代码 ; <?...NavController 就需要设置正确的 NavHostFragment ; 首先 , 确保 Activity 继承自 , 不要继承 android.app.Activity , 否则将无法获取...在 布局文件的 Design 模式下 , 将 Container 下的 NavHostFragment 组件拖入到布局文件中 , 生成的代码是错误的 ; 生成了如下代码 : 如果使用这个代码 , 是无法获取到

    65810

    【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 使用 DexClassLoader 获取组件类失败 | 失败原因分析 | 自定义类加载器没有加载组件类的权限 )

    DexClassLoader 获取组件类失败报错 二、失败原因分析 一、使用 DexClassLoader 获取组件类失败报错 ---- 在上一篇博客 【Android 逆向】启动 DEX 字节码中的 Activity...组件 ( DEX 文件准备 | 拷贝资源目录下的文件到内置存储区 | 配置清单文件 | 启动 DEX 文件中的组件 | 执行结果 ) 中 , 尝试启动 DEX 字节码文件中的 Activity 组件...Process: com.example.classloader_demo, PID: 25158 java.lang.RuntimeException: Unable to instantiate activity...ComponentInfo{com.example.classloader_demo/com.example.dex_demo.MainActivity2}: java.lang.ClassNotFoundException...组件类失败了 ; 其中的最主要原因是 , 类加载器的双亲委派机制 , 加载 Android 组件类需要使用系统指定的类加载器 , 这些类加载器设置在 LoadedApk 实例对象中 , 并且这些类加载器只能从特定位置加载字节码文件

    1.1K30

    Weex是如何在Android客户端上跑起来的

    如此快速的迭代就解决了前言里面说的第一个痛点,发布无法控制时间, Weex中Native组件和API都可以横向扩展,业务方可去中心化横向灵活化定制组件和功能模块。...activity, Bundle bundle) { } @Override public void onActivityStarted(Activity activity...实际上,每一个Component持有一个androidview的实例和WXDomObject的实例。 基本上是相同的套路。最后是在WXDomRegistry注册。...{ //自动生成一个instanceId mInstanceId = WXSDKManager.getInstance().generateInstanceId(); //初始化这个实例...本文覆盖的范围还主要在jsf的初始化和native render调用的开始。 首先,JSFramework是全局单例,但是WXSDKInstance是每个页面自己的实例。

    2.7K50
    领券