为什么这个安卓 Fragment切换操作内存泄露了,内存在不断上涨,且会崩溃;
@Override
public void onClick(View view) {
int id = view.getId();
resetBottonState();
setBottonItemSelected(id);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment fragmentToReplace = null;
switch (id) {
case R.id.ll_home:
if (fragIdx != 0 && !fragmentManager.isStateSaved()) {
fragmentToReplace = fragmentManager.findFragmentByTag(HomeFragment.TAG);
if (fragmentToReplace == null) {
fragmentToReplace = HomeFragment.newInstance("这是首页", "");
}
fragIdx = 0;
}
break;
case R.id.ll_help:
if (fragIdx != 1) {
fragmentToReplace = fragmentManager.findFragmentByTag(HelpFragment.TAG);
if (fragmentToReplace == null) {
fragmentToReplace = HelpFragment.newInstance("这是帮助", "");
}
fragIdx = 1;
}
break;
case R.id.ll_mine:
if (fragIdx != 2) {
fragmentToReplace = fragmentManager.findFragmentByTag(MineFragment.TAG);
if (fragmentToReplace == null) {
fragmentToReplace = MineFragment.newInstance("这是我的", "");
}
fragIdx = 2;
}
break;
default:
break;
}
if (fragmentToReplace != null) {
fragmentTransaction.replace(R.id.fcv_fragment, fragmentToReplace, fragmentToReplace.getClass().getName());
fragmentTransaction.commit();
}
}