Skip to content

Instantly share code, notes, and snippets.

@aucd29
Last active May 15, 2018 04:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aucd29/46f3931f5c9329a5aeff51555f02ac3d to your computer and use it in GitHub Desktop.
Save aucd29/46f3931f5c9329a5aeff51555f02ac3d to your computer and use it in GitHub Desktop.
dagger 예제
public class Bk {
@Inject
public Bk() {
}
public String helloworld() {
return "Hello world";
}
}
public class MainActivity extends DaggerAppCompatActivity {
@Inject
Bk mBk; // 알아서 instance 됨
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MainViewModel vm = ViewModelProviders.of(this).get(MainViewModel.class);
vm.netInfo.set(mBk.helloworld());
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.setModel(vm);
}
}
public class MainApp extends DaggerApplication {
@Override
protected AndroidInjector<? extends DaggerApplication> applicationInjector() {
return DaggerMyAppComponent.builder().application(this).build();
}
}
@Component( modules = { AndroidInjectionModule.class, MyAppModule.class })
public interface MyAppComponent extends AndroidInjector<MainApp> {
@Component.Builder
interface Builder {
@BindsInstance
MyAppComponent.Builder application(Application application);
MyAppComponent build();
}
}
@Module
public abstract class MyAppModule {
@ContributesAndroidInjector
abstract MainActivity contributeActivityInjector();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment