gpt4 book ai didi

Android 支持库 27.1.0 新方法 requireActivity()、requireContext()

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:40 24 4
gpt4 key购买 nike

根据支持库更改日志和 Fragment 类文档 (https://developer.android.com/reference/android/support/v4/app/Fragment.html),现在有像 requreActivity() 和 requireContext() 这样的新方法。

与 getActivity() 和 getContext() 相比,这些方法的目的是什么,因为它们仍然可以抛出 IllegalStateExceptions?当找不到 Activity 或上下文时,这比返回 null 更可取吗?我应该简单地将每个 getActivity() 替换为 requireActivity() 吗?

最佳答案

基本上就是有一个总是返回非空对象或抛出异常的方法。就是这样。

来自文档:

Fragments 现在有 requireContext()、requireActivity()、requireHost() 和 requireFragmentManager() 方法,它们返回等效 get 方法的 NonNull 对象或抛出 IllegalStateException。

https://developer.android.com/topic/libraries/support-library/revisions.html#27-1-0

这个 SO 问题也提到了这背后的原因:

“getActivity 和 getContext 方法返回可为 null 的类型,因为当 Fragment 未附加到 Activity 时,这些方法已经返回 null。行为没有变化,现在只是显式标记,因此您可以安全地处理它。”

https://stackoverflow.com/a/47253335/3268303

来自 reddit:

“我从支持 v26 更新到支持 v27,并且必须在 Fragments 中的 Activity/上下文方法中添加一堆 !!s,我显然不希望它为空。很高兴有 require* 方法可以做到这对我来说没有丑陋的!!s。”

https://www.reddit.com/r/androiddev/comments/80ork8/support_library_2710_has_been_released/duxp75h/

关于Android 支持库 27.1.0 新方法 requireActivity()、requireContext(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49289281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com