I think I am getting memory leaks when I use fragments for my android app because when I add more fragments the app crashes and each new fragment I open the memory peaks. How can I resolve this? I am fairly new to fragments and I have used many resources to use the appropriately... or so I thought. I am getting memory leaks as my heap continues to grow as I change from fragment to fragment.
This is my MainActivity.java
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
public class MainActivity extends FragmentActivity {
ViewPager viewpager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewpager = (ViewPager) findViewById(R.id.pager);
PagerAdapter padapter = new PagerAdapter(getSupportFragmentManager());
viewpager.setAdapter(padapter);
}
}
This is my PagerAdapter.java
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class PagerAdapter extends FragmentPagerAdapter {
public PagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
switch (arg0) {
case 0:
return new FragmentOne();
case 1:
return new FragmentTwo();
case 2:
return new FragmentThree();
case 3:
return new FragmentFour();
case 4:
return new FragmentFive();
default:
break;
}
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 5;
}
}
Given the code above, when I switch to Fragment 4 or 5 I retain the previous memory that was allocated for the previous fragments and so the app memory levels peak uncontrollably and the app begins to lag. Fragment 5 doesn't even load so I don't know whether that is because of there not being enough memory or due to the code being wrong. Please help as I'm lost.