匕首线切割图纸下载_真正的单身与匕首2

匕首线切割图纸下载

我之前写过有关Dagger 2的文章。但是,我仍然不了解每个角落。 尤其是@Singleton注释可能会引起误解,因为用户Zhuiden十分友善地指出

如果您每次注入都创建一个新的ApplicationComponent,那么您将在注入的每个位置获得一个新实例; 并且您实际上不会在期望单身的地方拥有单身人士。 ApplicationComponent应该由Application管理,并可以在整个应用程序中访问,而Activity与它的创建无关。

快速检查后,我只能同意。 Singleton模式仅适用于特定的@Component上下文,并且每次调用时都会创建一个:

DaggerXXXComponent.create();

因此,唯一的问题是实例化该组件一次,并将其存储在应用程序中每个类可用的范围内。 猜猜是什么,这个范围存在:仅需要两个简单步骤。

  1. 扩展Application类,并在onCreate()方法中,创建一个新的XXXComponent实例并将其存储为静态属性。
    publicclassGlobalextendsApplication{
    
        privatestaticApplicationComponentapplicationComponent;
    
        publicstaticApplicationComponentgetApplicationComponent(){
            returnapplicationComponent;
        }
    
        @Override
        publicvoidonCreate(){
            super.onCreate();
            applicationComponent=DaggerApplicationComponent.create();
        }
    }
  2. 下一步是将创建的类连接到Android清单中的应用程序生命周期中:
    <?xml version="1.0" encoding="utf-8"?>
    <manifestxmlns:android="http://schemas.android.com/apk/res/android"package="ch.frankel.todo">
      <applicationandroid:name=".shared.Global">
        ...
      </application>
    </manifest>

在这一点上,用法非常简单。 将本文的第一段替换为:

Global.getApplicationComponent();

这样可以在Dagger 2中实现真正的单例。

翻译自: https://blog.frankel.ch/true-singletons-with-dagger-2/

匕首线切割图纸下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值