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.
 
     
    