gpt4 book ai didi

java - 是否需要在fragment onActivityCreated 方法中检查父 Activity 是否为空?

转载 作者:行者123 更新时间:2023-12-01 22:31:09 41 4
gpt4 key购买 nike

我正在阅读以下内容tutorial其中作者展示了如何使用 fragment 实现选项卡界面。在设置列表适配器之前,每个 fragment 都会对父 Activity 进行空检查,如下所示:

public class LocationListFragment extends ListFragment {

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

Activity activity = getActivity();

if (activity != null) {
ListAdapter listAdapter = new LocationModelListAdapter(activity, FragmentTabTutorialApplication.sLocations);
setListAdapter(listAdapter);
}
}
}

我试图更好地理解 Activity 和 Fragment 生命周期之间的关系,所以我的问题是:为什么需要这样做?文档说,onActivityCreated 方法是在 Activity 的 onCreate 方法返回后调用的,如果是这样的话,此时 Activity 怎么可能为 null?

最佳答案

我认为您不需要检查这个特定的覆盖。 fragment 生命周期与其托管 Activity 密切相关。

我认为大多数人都会检查 getActivity() != null 作为良好实践,因为如果您在Fragment 本身已与 Activity 分离,因此 getActivity() 返回 null。

在您的主 (UI) 线程(即 onActivityCreated() 被调用的地方)上,它不应该发生。

关于java - 是否需要在fragment onActivityCreated 方法中检查父 Activity 是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27725009/

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