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

南昌网站搭建服务怎样申请网站空间

南昌网站搭建服务,怎样申请网站空间,如何在百度举报网站,洞泾做网站什么是Dagger和Hilt Dagger和Hilt都是安卓端的依赖注入框架 通过注解生成的方式,来取代手动创建对象的方式,来管理对象和其作用域 Dagger是Square公司出品的,而Hilt是由Google公司在Dagger的基础上优化而来 配置项目级别gradle buildscri…

什么是Dagger和Hilt

Dagger和Hilt都是安卓端的依赖注入框架

通过注解生成的方式,来取代手动创建对象的方式,来管理对象和其作用域

Dagger是Square公司出品的,而Hilt是由Google公司在Dagger的基础上优化而来

配置项目级别gradle

buildscript {repositories {mavenLocal()maven { url 'https://jitpack.io' }maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.aliyun.com/repository/releases' }google()mavenCentral()}dependencies {classpath "com.android.tools.build:gradle:4.2.2"classpath 'com.google.dagger:hilt-android-gradle-plugin:2.44'}}task clean(type: Delete) {delete rootProject.buildDir}

配置模块级别gradle

apply plugin: 'com.android.application'apply plugin: 'com.google.dagger.hilt.android'android {compileSdkVersion 30defaultConfig {applicationId "com.android.code"minSdkVersion 28targetSdkVersion 30versionCode 1versionName "1.1.1"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}buildFeatures {viewBinding truedataBinding true}}dependencies {api 'androidx.appcompat:appcompat:1.2.0'api 'com.google.android.material:material:1.3.0'api 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.2'androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'//GSONapi 'com.google.code.gson:gson:2.8.7'//RxJava2api 'io.reactivex.rxjava2:rxjava:2.1.3'api 'io.reactivex.rxjava2:rxandroid:2.0.1'//Retrofit2api 'com.squareup.retrofit2:retrofit:2.3.0'api 'com.squareup.retrofit2:converter-gson:2.3.0'api 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'//Dagger2api 'org.glassfish:javax.annotation:10.0-b28'api "com.google.dagger:dagger:2.47"annotationProcessor "com.google.dagger:dagger-compiler:2.47"//Hiltapi 'com.google.dagger:hilt-android:2.44'annotationProcessor 'com.google.dagger:hilt-android-compiler:2.44'}

Hilt使用方式

由于Hilt是个Dagger基础上优化而来,因此使用方式比较相似

这里我们只讲解Hilt的使用方式,不再讲解Dagger

  • 在Application上添加@HiltAndroidApp注解

  • 在需要注入对象的组件,比如Activity或Fragment上,添加@AndroidEntryPoint注解

  • 在需要注入对象的组件中,通过@Inject注解定义对象

  • 在需要注入对象的默认构造方法上,添加@Inject注解

  • 如果需要在某个作用域内共享对象,可以在类名上添加作用域注解,如@Singleton,@ActivityScoped,@ViewScoped等

  • 如果希望注入对象,在其子组件中重新注入仍然生效,可以通过@Module注解定义一个专门的模块类

  • Module类需要通过@InstallIn指定安装到哪个组件中,Module类还需要提供一个方法,用于生产对象

  • Module类中用于生产对象的方法,需要添加作用域注解,和@Provides注解

  • Module类中,Method上的作用域注解,和InstallIn指定的组件,范围必须对应

Hilt参考代码

public class User extends BaseObservable {public String account;public String password;public String name;@Injectpublic User() {}@Overridepublic String toString() {return hashCode() + "";}}
@AndroidEntryPoint@SuppressWarnings("all")public class HomeActivity extends AppCompatActivity {@InjectUser user1;@InjectUser user2;}
@Module@InstallIn(ActivityComponent.class)public class UserModule {@ActivityScoped@Providespublic static User injectUser() {return new User();}}
http://www.yayakq.cn/news/794383/

相关文章:

  • 网上做网站网站代理网页布局有哪些
  • 工业智能科技网站设计建设一个购物网站需要多少钱
  • 自己做国际网站交流平台网站架构怎么做
  • 胶南做网站灵感设计网站
  • 部队网站建设总结wordpress注册时候卡住
  • 扬州网站建设suteng网络推广营销方法
  • 华亚快印网站开发做旅游网站需要什么
  • 网站栏目建设图全国做旅游开发的公司
  • 做国际网站怎么能快速打开哪个网站做初中英语试题赚钱
  • 临沂住房和城乡建设局网站打不开太原网站seo外包
  • 北京企业建站公司化妆品网站的搭建
  • 咸阳网站设计申请做网站_论坛版主
  • 交互式网站定义网站建设找伟杨科技
  • 番禺建设网站公司排名网站建设项目组织结构图
  • 一站式商家服务平台vr网站建设
  • 外贸公司 如何做公司网站成交型网站建设价格
  • 买网站源码的网站wordpress自定义分类调用
  • 网站鼠标特效网站建设硬件环境
  • 怀化冰山涯IT网站建设公司微商城网站建设行情
  • 淘宝客做二级域名网站电子商务网站体系结构有哪些
  • 网站建设选题wordpress点击放大图片
  • 网站后台账户如何做会计分录百度seo关键词排名优化教程
  • 北京正规网站建设单价做酒水网站有哪些
  • 免费招聘网站平台自己做的网站怎么接入数据库
  • 网站建设怎么评估网站开发完成情况说明
  • 建设一个蛋糕网站的背景与目的中国十大经典广告
  • 如何为网站做面包屑导航wordpress怎么写接口
  • 做网站费用分摊入什么科目中企动力做销售的感受
  • 个人网站建设步骤软件公司组织架构
  • 怎么做外围网站的代理微信微网站开发