草庐IT

android - 为什么不将 OrmLiteSqliteOpenHelper 绑定(bind)到应用程序而不是 Activity ?

在ORMLite文档中itisrecommended为每个Activity创建OrmLiteSqliteOpenHelper。由于获取助手只需要一个Context对象,为什么不为整个Application对象创建一次数据库助手?这将开启使用Dagger(或其他注入(inject)框架)将数据库助手注入(inject)到需要它的类中的可能性。有什么理由不创建一个应用程序范围的数据库助手?让每个Activity都有自己的数据库助手是否更可取?我可以想象这会使助手的缓存大小保持较小,因为缓存仅包含与其Activity相关的对象。 最佳答案

android - Dagger2 错误 : Cannot provide without @Inject constructor

我是Dagger2的新手,遇到了一个小问题。希望你能帮我:)我的android项目中有以下类应用应用组件应用模块主要Activity主要组件主模块IntentStarter在重建/编译时出现错误Error:(15,10)error:xyz.IntentStartercannotbeprovidedwithoutan@Injectconstructororfroman@Provides-or@Produces-annotatedmethod.xyz..MainActivity.intentStarter[injectedfieldoftype:xyz..IntentStarterinte

android - 使用 AccountManager、Retrofit 和 Dagger 实现 OAuth2

我正在尝试找出实现支持AccountManager.getAuthToken()的OAuth2流程的Retrofit客户端的最佳方法。我正在关注U2020理想情况下,我希望有一个简单的注入(inject)器publicclassExampleFragmentextendsInjectionFragment{@InjectApiDatabasedatabase;@OverridepublicvoidonActivityCreated(BundlesavedInstanceState){super.onActivityCreated(savedInstanceState);subscrib

java - 如何为 MortarActivityScope @Provide 一个 Activity,而不会在方向更改时泄漏 Activity?

我有一个Mortar应用程序,其中MortarActivityScope作为根范围下的第一个子级。MortarActivityScope有一个ActivityScope,它@Provides一个注入(inject)类的Activity:@Module(addsTo=ApplicationModule.class,injects={Foo.class,SomePresenter.class,AnotherPresenter.class})publicclassActivityModule{privatefinalActivityactivity;publicActivityModule(

android - 同一个项目中的 Realm.io/Dagger/Databinding

在通过gradle添加Realm.io作为依赖项后,我在编译项目时遇到问题。找不到由dagger和databinding创建的生成文件。如果我删除realm.io,应用程序会正确编译。这是我的build.gradleapplyplugin:'com.android.application'applyplugin:'com.neenbedankt.android-apt'applyplugin:'com.android.databinding'android{compileSdkVersion23buildToolsVersion"23.0.2"defaultConfig{multiDe

android - Dagger2 范围和 Activity 生命周期

我有一个AndroidActivity,我正在使用Dagger2将Presenter注入(inject)其中。我希望我的Presenter能够保持状态,即使发生配置更改也是如此。例如,我将使用Presenter启动网络调用,如果用户在网络调用进行中旋转设备,我希望能够在设备完成后收到响应它的轮换而不必重新启动调用。我被绊倒了,因为如果我将Presenter实例的范围限定为Activity的生命周期,那么当Activity在配置更改期间通过onDestroy()时,Presenter是否有可能被垃圾回收?我的另一个想法是使用在应用程序生命周期内有效的范围。但是,如果我这样做,我如何确保一

android - Dagger 2.15 - 如何在 Application 类中注入(inject)依赖项

我无法在DaggerApplication类中注入(inject)依赖相关类如下申请classApp:DaggerApplication(){@InjectlateinitvarmSomeClass:SomeClass//ThisisalwaysNULLoverridefunapplicationInjector():AndroidInjector{returnDaggerAppComponent.builder().application(this).build()}overridefunonCreate(){super.onCreate()mSomeClass.initialize

android - Dagger2 Activity 范围,我需要多少个模块/组件?

我有几个关于自定义范围的问题:我正在使用MVParchitecutre,我需要将不同的演示者注入(inject)到不同的Activity中。为此,我创建了@ActivityScope。这是否意味着我必须为每个Activity创建一个单独的模块/组件?如果我仍然负责创建和释放这些依赖项,自定义范围注释的目的是什么?不确定我是否正确,但我可以在我的所有模块/组件中使用@Scope123,这不会有任何区别。 最佳答案 DoesitmeanthatImustcreateaseparatemodule/componentforeveryact

java - Dagger 2 : avoid exporting private dependencies

假设我有一个模块,我只想导出A的一个实例。但是,此A需要在构造函数中传递B和C的实例。所以我们也会在模块中声明它们:publicclassSampleModule{@Provides@SingletonAprovideA(Bb,Cc){returnnewA(b,c);}@Provides@SingletonBprovideB(){returnnewB();}@Provides@SingletonCprovideC(){returnnewC();}}这行得通,但现在B和C也可以在代码的其他地方使用。我想让它们保持私有(private)并强制客户端类只能访问A。有什么办法可以实现吗?

Dagger2如何@provide使用两个不同的实现

我是Dagger2刚开始的新手。我想取得这样的目标,但没有成功。这是我的模块@ModulepublicclassUtilModule{@Provides@Named("fragmentUtilActivity")publicFragmentUtilsprovidesFragmentUtilForActivity(Contextcontext){returnnewFragmentUtils(context);}@Provides@Named("fragmentUtilFragment")FragmentUtilsprovidesFragmentUtilForFragment(Fragmentfr