requireActivity() 和 getActivity() 都是从 Fragment 中获取宿主 Activity 的方法,但它们有一些不同的行为和使用场景。
requireActivity()
- 抛出异常:如果
Fragment没有附加到任何Activity,调用requireActivity()会抛出IllegalStateException。 - 安全性:通常在你确定
Fragment已经附加到Activity时使用,可以避免NullPointerException。
getActivity()
- 返回null:如果
Fragment没有附加到任何Activity,调用getActivity()会返回null。 - 需要检查null:需要检查返回值是否为
null,否则可能会导致NullPointerException。
选择哪一个?
- 推荐使用
requireActivity():因为它更具安全性,强制你处理Fragment未附加到Activity