使用#recylce()后,应该回收此FragmentManager

时间:2013-04-14 13:47:41

标签: java android eclipse recycle

这是我的代码:

protected void showNewsItem(News news) {
    FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    DialogFragment newFragment = MyNewsFragment.newInstance();
    newFragment.show(ft, "dialog");
}

错误This FragmentManager should be recycled after use with #recylce()出现在beginTransaction行。

我尝试按照错误提示添加fm.recycle();,但这会给我一个recycle未定义的错误。

1 个答案:

答案 0 :(得分:4)

请改用DialogFragment.show(FragmentManager manager, String tag)版本 所以在你的情况下:

protected void showNewsItem(News news) {
    DialogFragment newFragment = MyNewsFragment.newInstance();
    newFragment.show(getFragmentManager(), "dialog");
}

通常,上述习语足以显示DialogFragment

show(FragmentTransaction transaction, String tag)版本用于"捎带"现有的FragmentTransaction