我在项目中使用了Dagger 2,它在活动中的效果非常好。但是,当我在Fragments中使用相同的代码时,有时当我在onAttach()方法中插入匕首时,我的演示者将变为null。然后,当我将注射移动到onCreateView()中时,我没有遇到这个问题。但这是注入onCreateView()的正确方法吗?
@Inject
ChatFavouritesPresenter chatFavouritesPresenter;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.chat_fragment_history, container, false);
ButterKnife.bind(this, view);
injectPresenter();
return view;
}
private void injectPresenter() {
if (chatFavouritesPresenter == null) {
ActivityComponent component = getActivityComponent();
if (component != null) {
component.inject(this);
if (chatFavouritesPresenter != null) {
chatFavouritesPresenter.onAttach(this);
}
}
}
}