在我的Android应用程序中,我有主要活动,其余的是来来往往的碎片。
我不明白的行为是当我带来一些带有某些方法的新片段时(refreshNotification):
public class MessageDetail extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
......
}
void refreshNotification() {
.......
}
}
使用它,然后通过调用remove()
:
fragmentManager.beginTransaction().setCustomAnimations(R.anim.slide_in, R.anim.slide_out).remove(fragmentManager.findFragmentByTag("msgDetailTag")).commitAllowingStateLoss();
...片段已经消失但它不会破坏方法 void refreshNotification()
。意味着它仍然存在于某个地方。这就像那些方法成为MainActivity.java的一部分。我想当删除片段时,片段java文件中的所有方法也会被删除。
如何销毁所有片段方法?
谢谢
答案 0 :(得分:-1)
当你尝试替换片段时,它将进入暂停状态并且不会破坏,你需要删除这样的片段:
Fragment fragment = getSupportFragmentManager().findFragmentByTag(TAG_FRAGMENT);
if(fragment != null)
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
或者您也可以通过findfragmentbyid(R.id.container)