You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

onActivityCreated已被废弃,对应的替代方法是什么?相关代码该如何改写?

onActivityCreated 废弃替代方案及代码重写

onActivityCreated 从AndroidX Fragment 1.3.0版本起正式废弃,官方不再推荐使用。你当前的代码是完成Fragment关联Activity中ListView的初始化与适配器绑定操作,直接将逻辑迁移到Fragment的onViewCreated生命周期方法中即可,无需额外适配。

重写后代码

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    // 判空避免空指针异常
    if (getActivity() == null) {
        return;
    }
    ListView homeListView = getActivity().findViewById(R.id.home_list);
    homeListView.setAdapter(new BaseAdapter() {
        @Override
        public int getCount() {
            return 3;
        }

        @Override
        public Object getItem(int i) {
            return null;
        }

        @Override
        public long getItemId(int i) {
            return 0;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            return LayoutInflater.from(getActivity()).inflate(R.layout.list_item_home, null);
        }
    });
}

特殊场景适配

如果你的业务逻辑必须等待Activity完全执行完onCreate生命周期才能运行,可以通过监听Activity的生命周期实现:

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    requireActivity().getLifecycle().addObserver(new LifecycleEventObserver() {
        @Override
        public void onStateChanged(@NonNull LifecycleOwner source, @NonNull Lifecycle.Event event) {
            if (event == Lifecycle.Event.ON_CREATE) {
                // 此处放置需要等待Activity创建完成后执行的逻辑
                // 执行完成后移除观察者避免内存泄漏
                source.getLifecycle().removeObserver(this);
            }
        }
    });
}

内容的提问来源于stack exchange,提问作者Tony Wamba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:15:02