繁体   English   中英

Android片段参数包在任何情况下都被破坏吗?

[英]Is Android fragment argument bundle destroyed in any case?

默认的Android Studio生成的代码:

public static Test newInstance(String param1, String param2) {
    Test fragment = new Test();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    fragment.setArguments(args);
    return fragment;
}
public Test() {
    // Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }
}

空检查真的有用吗? 换句话说,在任何情况下都将销毁参数束吗?

编辑:顺便说一句,我也不明白这一点:

@Override
public void onDetach() {
    super.onDetach();
    mHandler = null;
}

该片段的实例已经(或将要消失),那么将mHandler设置为null意味着什么?

如果此片段在ViewPager中使用,并且您正在使用Fragment“ State” PagerAdapter,则应该是必需的。

因为FragmentStatePagerAdapter使用默认的构造函数在需要时创建片段。 在这种情况下,您将缺少参数。

另外,如果此片段因释放内存而破坏并在需要时恢复,则它将使用默认构造函数再次创建。 同样的故事在这里。

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM