Android Dagger2的案例demo
时间: 2024-01-06 09:03:41 浏览: 74
这里提供一个简单的 Android Dagger2 的案例 demo,使用 Dagger2 实现依赖注入,实现了一个简单的计算器功能。
首先,在 build.gradle 中添加依赖:
```
dependencies {
implementation 'com.google.dagger:dagger:2.x'
annotationProcessor 'com.google.dagger:dagger-compiler:2.x'
}
```
然后,定义依赖关系。在这个例子中,我们定义了两个依赖:Calculator 和 CalculatorModule。Calculator 是一个接口,CalculatorModule 是一个模块,其中包含了用于实例化 Calculator 对象的方法。
```
public interface Calculator {
int add(int a, int b);
}
@Module
public class CalculatorModule {
@Provides
Calculator provideCalculator() {
return new CalculatorImpl();
}
}
```
其中,CalculatorImpl 是 Calculator 接口的实现类,用于实现 add 方法。
```
public class CalculatorImpl implements Calculator {
@Override
public int add(int a, int b) {
return a + b;
}
}
```
在 Activity 中,我们需要使用 Calculator 对象,可以通过 @Inject 注解实现依赖注入。
```
public class MainActivity extends AppCompatActivity {
@Inject
Calculator calculator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DaggerCalculatorComponent.create().inject(this);
int result = calculator.add(1, 2);
Toast.makeText(this, "1 + 2 = " + result, Toast.LENGTH_SHORT).show();
}
}
```
其中,DaggerCalculatorComponent 是 Dagger2 自动生成的 Component 类,用于创建 Calculator 对象,并注入到 MainActivity 中。
最后,我们需要定义一个接口,用于将 CalculatorModule 和 MainActivity 连接起来。
```
@Component(modules = {CalculatorModule.class})
public interface CalculatorComponent {
void inject(MainActivity activity);
}
```
以上就是 Android Dagger2 的一个简单 demo。
阅读全文