目前我不是依赖注入的粉丝,但我想尝试一下。
这就是我所拥有的:
import android.os.Bundle;
import com.facebook.CallbackManager;
import rx.android.app.RxActivity;
public class ActivityMain2 extends RxActivity {
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
callbackManager = CallbackManager.Factory.create();
}
}
现在我想注入 Facebook 的 CallbackManager。好的,让我们开始吧。
我创建了很多新课程……真的吗?我必须编写更多代码才能让我的开发人员生活更轻松?:-(
import com.facebook.CallbackManager;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module
public class FacebookModule {
@Provides
@Singleton
CallbackManager provideCallbackManager() {
return CallbackManager.Factory.create();
}
}
import com.facebook.CallbackManager;
import javax.inject.Singleton;
import dagger.Component;
@Singleton
@Component(modules = {FacebookModule.class})
public interface FacebookComponent {
CallbackManager provideCallbackManager();
}
有了这个新类,我将 Activity 更改为:
import android.os.Bundle;
import com.facebook.CallbackManager;
import javax.inject.Inject;
import rx.android.app.RxActivity;
public class ActivityMain2 extends RxActivity {
@Inject
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initializeDependencyInjector();
}
private void initializeDependencyInjector() {
DaggerFacebookComponent.builder()
.facebookModule(new FacebookModule())
.build();
}
}
但它不起作用。callbackManager
始终为空。
这有什么问题?