requireActivity()
和 getActivity()
都是從 Fragment
中獲取宿主 Activity
的方法,但它們有一些不同的行為和使用場景。
requireActivity()
- 拋出異常:如果
Fragment
沒有附加到任何Activity
,調用requireActivity()
會拋出IllegalStateException
。 - 安全性:通常在你確定
Fragment
已經附加到Activity
時使用,可以避免NullPointerException
。
getActivity()
- 返回null:如果
Fragment
沒有附加到任何Activity
,調用getActivity()
會返回null
。 - 需要檢查null:需要檢查返回值是否為
null
,否則可能會導致NullPointerException
。
選擇哪一個?
- 推薦使用
requireActivity()
:因為它更具安全性,強制你處理Fragment
未附加到Activity