Как бы восстановить фрагменты введенных зависимостей? - PullRequest
0 голосов
/ 18 января 2019

У меня есть фрагмент, в котором я передаю его двум фабрикам, которые будут использовать для создания компонентов внутри себя.Фрагмент выглядит следующим образом:

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");
}

Проблема в том, что оба свойства фабрики в восстановленном экземпляре фрагмента равны нулю.Я не понимаю, почему это происходит.Я хотел бы использовать здесь внедрение зависимостей, так как считаю, что оно вполне соответствует требованиям моего приложения.Есть ли что-то, что я пропускаю здесь?Нужно ли что-то делать во фрагменте на его внешности?Любое понимание будет оценено.Я также хочу сделать это изначально, не используя что-то вроде кинжала.Спасибо!

...