저는 Roboguice를 잠시 사용하고 있습니다.하지만 github에서 소스 코드를 볼 때 불필요한 것들이 많이 있기 때문에 일반적으로 사용하지 않거나 필요하기 때문에 Guice와 만 작업하기로 결정했습니다. 이것에 대한 유일한 단점은 내가 안드로이드 컨텍스트를 주입 자신에 의해 구성 할 필요가 있다는 것입니다, 그래서 나는이 일을 끝낼 :Guice in Android without Roboguice, 좋은 선택입니까?
public class AndroidDemoModule extends AbstractModule {
@Override
protected void configure() {
bind(Context.class).toProvider(new Provider<Context>() {
@Override
public Context get() {
return AndroidDemoApplication.getAppContext();
}
});
// .in(Singleton.class);
}
}
인가 : AbstractModule를 확장 내 수업에서 다음
public class AndroidDemoApplication extends Application {
private static AndroidDemoApplication instance;
private static final Injector INJECTOR = Guice.createInjector(new AndroidDemoModule());
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static Context getAppContext() {
return instance;
}
public static void injectMembers(final Object object) {
INJECTOR.injectMembers(object);
}
}
과 그것은 좋은 접근법인가? 지금은 단지 컨텍스트를 사용하여 sharedPreference 인스턴스를 만들고 컨텍스트를 필요로하는 세션 관리자를 사용하는 것으로 만 사용하면됩니다.
마침내 Roboguice를 Guice로 대체하는 것이 좋은 방법일까요? 안드로이드와 관련이없는 Context뿐입니다. Roboguice보다 가볍고 덜 의존적 인 것을 사용하십시오. 모든 단검이 비슷한 것을 한 후에, 맞습니까? 위해 사용하지 않는 클래스를 제거하기 위해 사용 ProGuard에서 :
감사합니다. Dagger 2를 살펴 보겠습니다. –
@NicolasJafelle은 분명합니다. 단검 2의 프레젠테이션은 다음과 같습니다. https://www.youtube.com/watch?v=oK_XtfXPkqw. 그리고 repo는 https://github.com/google/dagger에 있으며 정사각형/단검에는 없습니다. – Teovald
단검은 Guice와 같은가요? 내 말은 .. 그것은 안드로이드 프레임 워크와 전혀 관련이 없으며 컨텍스트와 그 모든 것을 구성해야한다는 것입니다. 그렇습니까? Android Apps 용 Roboguice를 권장한다면 왜 Dagger 2를 사용하시는 것이 좋습니다. 호기심을위한 것입니다. 감사! –