簡體   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