Prevent Fragment recovery in Android

android, fragment, garbage-collection, memory-management, recreate

Solution

We finished by adding to activity:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(null);
}

It suppresses any saved data on create/recreate cycle of an Activity and avoids fragments auto re-creation.

Problem

We are using Fragments and we don't need them to be automatically recovered when the Activity is recreated. But Android every time when `Activity::onCreate(Bundle savedInstanceState)` -> `super.onCreate(savedInstanceState)` is called, restores Fragments even if we use setRetainInstance(false) for those Fragments. Moreover, in those `Fragments` `Fragment.performCreateView()` is called directly without going through `Fragment::onAttach()` and so on. Plus, some of the fields are null inside restored `Fragment`... Does anybody know how to prevent Android from restoring fragments? P.S. We know that in case of recreating Activity for config changes it could be done by adding to manifest a`ndroid:configChanges="orientation|screenSize|screenLayout`. But what about recreating activity in case of automatic memory cleaning?

Original source

Related problems