当前位置: 首页 > news >正文

android jetpack App Startup 应用启动时初始化组件(java)

有什么用?

应用启动时初始化组件。

怎么用

添加依赖

dependencies {implementation "androidx.startup:startup-runtime:1.1.1"
}

创建类,继承Initializer。

public class AppInit implements Initializer<String> {@NonNull@Overridepublic String create(@NonNull Context context) {UMConfigure.init(context, Constant.UMENG_KEY, "", UMConfigure.DEVICE_TYPE_PHONE, "");return "APP INIT";}@NonNull@Overridepublic List<Class<? extends Initializer<?>>> dependencies() {return new ArrayList<>();}
}

create()初始化组件
dependencies() 返回初始化程序所依赖的其他 Initializer列表。返回空列表,表示没有依赖。

如果有依赖,添加到列表。这样初始化A,就要先初始化B。

public class AInitializer implements Initializer<String> {@NonNull@Overridepublic String create(@NonNull Context context) {//.....return "A";}@NonNull@Overridepublic List<Class<? extends Initializer<?>>> dependencies() {return Arrays.asList(BInitializer.class);}
}

配置provider

        <providerandroid:name="androidx.startup.InitializationProvider"android:authorities="${applicationId}.androidx-startup"android:exported="false"tools:node="merge"><!-- This entry makes ExampleLoggerInitializer discoverable. --><meta-data  android:name="cn.jn.mytest.init.AppInit "android:value="androidx.startup" /></provider>

启动应用的时候,就会自动初始化组件。

但这不是我们想要的,一般情况下,会先检测是否同意隐私协议,之后,再做处理,这个时候就需要手动初始化组件。
手动初始化组件,需要停用自动初始化功能。

<providerandroid:name="androidx.startup.InitializationProvider"android:authorities="${applicationId}.androidx-startup"tools:node="remove" />

手动初始化

AppInitializer.getInstance(context).initializeComponent(AppInit .class);
http://www.lryc.cn/news/102725.html

相关文章:

  • 【设计模式|行为型】命令模式(Command Pattern)
  • SqlServer 批量删除表
  • [Linux]线程基本知识
  • STM32 串口基础知识学习
  • 页面滚动时隐藏element-ui下拉框/时间弹框
  • C#中i++和++i的底层原理
  • 在win10下安装verilator
  • java设计模式-建造者(Builder)设计模式
  • iOS开发-实现获取下载主题配置动态切换主题
  • react经验4:动态组件
  • Java maven的下载解压配置(保姆级教学)
  • Java课题笔记~数据库连接池
  • 设计模式-单例模式
  • golang mysql
  • uniapp使用echarts
  • Python命令模式介绍、使用
  • #typescript 使用file-saver模块#
  • 移动端适配布局rem和vw
  • 【Java基础教程】(四十八)集合体系篇 · 上:全面解析 Collection、List、Set常用子接口及集合元素迭代遍历方式~【文末送书】
  • 什么是 DNS ANAME 解析?
  • Neo4j 集群和负载均衡
  • go web框架 gin-gonic源码解读01————Engine
  • windows版docker部署springcloud项目
  • 探索工程机械远程控制新纪元:Intewell-Hyper II震撼发布!
  • DM8 DSC集群实时主备搭建
  • 配置IPv4 over IPv6隧道示例
  • 在中国区部署日志通2.0
  • centos下安装jdk
  • 【HDFS】LocatedBlocks、LocatedBlock、LocatedStripedBlock、ExtendedBlock类分析
  • Oracle 19c 报ORA-704 ORA-01555故障处理---惜分飞