ono
ono

Reputation: 3102

How to deal with Activity and Fragment when returning to app after they're removed from memory?

I'm having an issue of having two instances of the same fragment being attached to the activity. I have ActivityA attaching FragmentA on onCreate. When I leave the app while being on this Activity, browse other apps for a while, and return to the app, I see that the system is trying to re-create the activity. My log shows the code from the Fragment being ran TWICE. My guess is the Fragment is already attached but then the Activity attempts to create a new instance of FragmentA.

What happens to the Activity/Fragment when the system removes them from memory, and what's the best way to handle this? Any links would be helpful.

Will provide code if needed.

Upvotes: 0

Views: 49

Answers (1)

Quanturium
Quanturium

Reputation: 5696

The best way to handle this is to check in your onCreate() method if your activity if being recreated from a previous state or not. I'm assuming you add your fragment on the onCreate() method of your activity. You can do something like this:

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    if (savedInstanceState == null)
    {
        // Add the fragment here to your activity
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.replace(R.id.content, new YourFragment());
        ft.commit();
    }
}

By doing this, you are basically saying that if a previous state is not found, you add your fragment. Otherwise you automatically get back the fragment that already exists.

Upvotes: 1

Related Questions