【MVP+Dagger2+Rxjava+Retrofit+GreenDao 开发的小应用,包含新闻、图片、视频3个大模块,代码封装良好】教程文章相关的互联网学习教程文章

MVP+Dagger2+Rxjava+Retrofit+GreenDao 开发的小应用,包含新闻、图片、视频3个大模块,代码封装良好

练习MVP架构开发的App,算是对自己学过的知识做一个总结,做了有一段时间,界面还算挺多的,代码量还是有的,里面做了大量封装,整体代码整理得很干净,这个我已经尽力整理了。不管是文件(java、xml、资源文件)命名,还是布局设计尽量简单简洁,我对自己写代码的规范还是有信心的--。代码不会写的很复杂,整个代码结构有很高的统一度,结构也比较简单清晰,方便理解。里面做了大量的封装,包括基类的构建和工具类的封装,再配合D...

java-应用程序组件上的Dagger 2实例化【代码】

我对dagger2有疑问, 如果我为@Singleton提供了ApplicationComponent,但没有在某些类中使用@Inject实例化该对象.对象在某个类中为@Inject时是否会实例化?例如,在下面的代码中,test是否在main2上实例化?@Singleton public class Test {@Injectpublic Test() {} }public class main() {@Inject Test test;public void start() {DaggerComponent.create().inject(this);} }public class main2() {public void start() {DaggerCompone...

无法在Java Android中使用dagger2在片段中注入依赖项【代码】

我能够在活动及其工作中注入依赖性.但是在片段中调用相同的依赖项不会获得访问权限. 这就是我所做的. 应用程式Javapublic class App extends MultiDexApplication implements HasActivityInjector, HasFragmentInjector {@InjectDispatchingAndroidInjector<Activity> activityInjector;@InjectDispatchingAndroidInjector<Fragment> fragmentInjector;private AppComponent mComponent;@Overridepublic void onCreate() {super.on...

多个dex文件定义了Lcom / squareup / javawriter / JavaWriter $Scope;在尝试使用Dagger和dagger-compiler进行编译时【代码】

我在我的应用程序模块build.gradle中有这些compile 'com.squareup.dagger:dagger:1.2.2' compile 'com.squareup.dagger:dagger-compiler:1.2.2'当我尝试构建时,出现上述异常(http://i.imgur.com/PMTZwWq.png) 如果我不包括编译器,则会得到:Module adapter for class ....AndroidModule could not be loaded. Please ensure that code generation was run for this module.为什么我会收到此异常,应该如何解决? 我正在使用Android ...

Java-Dagger 2和Retrofit 2更改基本URL【代码】

我的情况是我需要动态更改url,但是我不想创建2个改造客户端的实例.我正在尝试通过拦截器修改来更改基本URL,但是翻新stil使用旧值.我究竟做错了什么? App.javapublic class App extends Application {private static AppComponent appComponent;@Overridepublic void onCreate() {super.onCreate();appComponent =DaggerAppComponent.builder().appModule(new AppModule(this)).build();}@NonNullpublic static App get(@NonNull C...

java-从Dagger 2开始-类未注入【代码】

我试图将单例存储库注入Foo类以使用它.回购没有注入并且仍然为空,为什么我缺少一些注释或那不是正确的方法 仓库.java@Singlton public class Repository {...} Foo.javapublic class Foo {@Inject Repository repo; }解决方法:Dagger通过组件工作:具体来说,您向Dagger传递了想要或想要做的事情的列表(组件接口),以及如何提供非平凡的依赖关系(模块),然后Dagger生成了您的实现界面可以满足您的需求. 您已经向我们展示了Foo及其依赖...

java – 带有MVP的Dagger 2,避免在视图重新创建时创建额外的presenter对象【代码】

我有一个应用程序实现MVP模式与一个Loader来维护视图娱乐上的演示者对象(有一篇关于这个here的文章).我是Dagger 2的新手,试图与当前代码一起实现它. 我已经设法使它工作,但现在我的演示者创建了两次.起初它是使用在onCreateLoader中初始化的工厂类创建的,但是当添加Dagger 2实现时,我创建了两个对象(在工厂类和注入时). 现在我避免在onCreateLoader中创建一个新的演示者,而是传递注入的演示者.问题在于视图重新创建:每次销毁和重新...

java – Dagger Retrofit.在运行时添加auth头【代码】

我想知道Dagger是否有办法知道它应该在新数据可用时重新创建一个对象. 我所说的实例是我用于改造的请求标题.在某些时候(当用户登录时),我得到一个令牌,我需要将其添加到改造的标题中以进行经过身份验证的请求.问题是,我留下了相同的未经验证的改造版本.这是我的注射代码:@Provides@SingletonOkHttpClient provideOkHttpClient(Cache cache) {HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();interceptor.setL...

java – 如何组织Dagger 2模块和组件?【代码】

你有一个特定的包,你把所有与Dagger相关的课程放在哪里? 或者你把它们放在他们注入的相关类旁边,例如如果您有MainActivityModule和MainActivityComponent,则将它们与MainActivity放在同一个包中. 另外,我见过很多人将组件定义为内部类,例如在Application类中定义的ApplicationComponent.你认为这是一个好习惯吗?解决方法:编辑:让我先从这里接近事实这一事实开始,但这是一个反模式,如Martin Fowler的Data Domain Presentation La...

java – 在Dagger2中将依赖项注入后台服务【代码】

我有共享偏好作为匕首单身组件.我需要将它注入后台服务,如FirebaseInstanceService.这是我的尝试:public class InstanceIDListenerService extends FirebaseInstanceIdService {@InjectPreferences preferences;@Overridepublic void onTokenRefresh() {((MyApp) getApplication()).getSingletonComponent().inject(this);String refreshedToken = FirebaseInstanceId.getInstance().getToken();preferences.setFcmToken(refreshe...

java – Android架构蓝图“todo-mvp-dagger”,其中是@Provides for TasksRepository?【代码】

从这里查看Android架构蓝图“todo-mvp-dagger”:https://github.com/googlesamples/android-architecture. 我正在尝试理解Dagger2实现,我似乎无法弄清楚他们如何让Dagger2提供TasksRepository. 他们有@Provides用于“provideTasksLocalDataSource”和“provideTasksRemoteDataSource”,但实际的TaskRepository是哪一个? 在TodoApplication类中,他们有:@Inject TasksRepository tasksRepository;怎么能在没有@Provides的情况下注...

java – Dagger:POJO中的场注入【代码】

我从未尝试过Guide或其他DI库,但尝试使用Dagger from square for Android应用程序.它适用于Frgements,但不适用于POJO. user guide假设有关DI的一些知识,因为它没有更详细地解释.我该怎么做才能将restAdapater注入我的POJO.如果我使用相同的代码进行字段注入,它可以在Fragment中使用.public class MyApplication extends Application {private ObjectGraph objectGraph;@Overridepublic void onCreate() {super.onCreate();objectGr...

java – Dagger不喜欢抛出异常的构造函数

我正在尝试在我的Android应用程序中使用Dagger来简化依赖注入.看起来Dagger 2.0不支持抛出异常的构造函数.这个问题有方法解决吗? 重构和创建抛出异常的init方法似乎不可行,因为必须在整个依赖对象链上调用init重新引入了匕首解决的问题.解决方法:生成代码在构造函数期间抛出异常时应该发生什么并不清楚.是否需要依赖于此类实例的类以某种方式捕获异常?如果抛出异常,应用程序是否应该崩溃?通常,依赖注入试图将依赖类与知道其依赖...

java – Dagger 2:使用@Named获取同一对象的多个实例时出错【代码】

我怎么能得到像光标一样的多个相同返回类型的实例 例如 :-Module @CursorScope public class CursorModule {@ProvidesCursor provideSongCursor(@Named("Song") Musician musician) {return musician.getApplicationContext().getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,new String[]{BaseColumns._ID,MediaStore.Audio.AudioColumns.TITLE,MediaStore.Audio.AudioColumns.ARTIST,MediaStore.Audio...

java – Dagger 2注入没有模块的单例【代码】

我正在使用Dagger 2注入为客户端提供一些依赖:public class Dependency {@InjectDependency() {}void check() {System.out.print("Instantiated");} }public class Client {@Inject Dependency dependency;Client() {ClientComponent component = DaggerClientComponent.create();component.inject(this);}void checkDependency() {dependency.check();} }@Component public interface ClientComponent {void inject(Client clien...

封装 - 相关标签
模块 - 相关标签