dagger2 每个 activity 都需要傻乎乎的写 component 吗

2017-07-31 16:55:29 +08:00
 zengmingyang96

比如说

public interface TasksComponent {

    void inject(TasksActivity activity);
}

因为 dagger2 的原因,这里的 TasksActivity 是不能用一个基类来替代的

那么我每个 Activity 都需要写一个 Component

然后在 activity 中inject(this)

有什么办法来简化这个过程呢

8679 次点击
所在节点    Android
6 条回复
Cabana
2017-07-31 19:38:48 +08:00
在基类中先构造好 component,再在子类里调 inject 注入
vjnjc
2017-08-01 14:40:21 +08:00
能用基类代替,但是被注入的成员必须声明在基类。
zengmingyang96
2017-08-01 15:15:25 +08:00
@vjnjc 愿闻其详
vjnjc
2017-08-01 18:56:12 +08:00
我的情况是基类里面有 @Inject protected EventBus eventBus; 和 MyApplication.component().inject(this);
然后就没了。。。
sherardxu
2017-08-17 14:21:33 +08:00
dagger2 在 v2.10 版本上线了 dagger.android , 可以减少此类模板代码。

--------
https://google.github.io/dagger//android.html
zengmingyang96
2017-08-17 14:56:34 +08:00
@sherardxu 感觉那样是更加麻烦了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/379305

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX