我将如何恢复片段注入的依赖性?

时间:2019-01-18 20:53:44

标签: android-fragments dependency-injection android-lifecycle fragmentmanager

我有一个片段,其中向我传递了两个工厂,这些工厂将用于在其内部创建组件。片段看起来像这样:

public static MyFragment newInstance(Factory1 factory, Factory 2, factory2) {
    MyFragment frag = new MyFragment();
    frag.factory1 = factory1;
    frag.factory2 = factory2;
    return frag;
}

这些片段是在父活动中创建的,如下所示:

MyFagment frag1 = MyFragment.newInstance(new Factory1(), new Factory2());
. . .
MyFragment fragN = MyFragment.newInstance(new Factory1(), new Factory2());

在我的父级活动中,当调用onSaveInstanceState()时,我将片段放到管理器上,以onCreate()方法进行恢复

onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    getSupportFragmentManager().putFragment(outState, "frag1", frag1);
    ...
}

然后,当活动再次运行时,我尝试像这样在onCreate()中进行恢复:

if(savedInstanceState != null) {
    frag1 = (MyFragment)getSupportFragmentManager().getFragment(savedInstanceState, "frag1");
}

与此有关的问题是,还原的片段实例上的两个工厂属性都等于null。我不明白为什么会这样。我想在这里利用依赖注入,因为我觉得它非常适合我的应用程序的要求。我在这里有东西吗?我是否需要在其过时的片段中做点什么?任何见识将不胜感激。我也希望在本地使用而不使用匕首之类的工具。谢谢!

0 个答案:

没有答案