碎片中的匕首注入

时间:2018-11-08 15:40:19

标签: android dependency-injection dagger-2

我在项目中使用了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);
            }
        }
    }

}

0 个答案:

没有答案