In my base Activity class I have links to all fragments that I call from menu.
Something like this:
BaseFragment mProjects;
BaseFragment mProfile;
public BaseFragment getFragment(FragmentType type) {
BaseFragment fr = null;
switch (type) {
case PROFILE:
fr = new Profile();
break;
case PROJECTS:
fr = new Projects();
break;
default:
return null;
}
return fr;
}
So, i create instance of fragments that accessible from menu one time. Is it good? Or i should create fragment every time? If so, then how can i save state of fragment (data, position)? Cause when i use replace
from fragment manager, onSaveInstanceState
of replaced fragment doesn't called. So when i will reopen it, there is no saved state.
Btw, I'm using onSaveInstanceState
in Activity:
@Override
public void onSaveInstanceState(Bundle saveInstanceState) {
// doing things
super.onSaveInstanceState(saveInstanceState);
}
Anyway if i don't store links to fragments onSaveInstanceState
of fragment will never called. So, i can store state of fragment in onPause
method, but it seems bad solution.
UPD: it's not opinion based question. There should be best practice for using fragment. So i asked for this.