原文

在这里插入图片描述
在这里插入图片描述
从 Android API 级别 28(Android 9.0) 开始,onActivityCreated() 被标记为 deprecated。Google 给出的理由是:这个方法的职责和 onViewCreated()、onCreate() 重叠,语义不清晰。同时,现代 Android 开发中使用 ViewModel + LiveData + ViewBinding 已经不再需要它。换句话说:
原本放在 onActivityCreated() 的UI逻辑可以放在 onViewCreated();非UI的初始化逻辑可以放在 onCreate()。

替代方案

  1. 使用 onViewCreated() 初始化视图逻辑如果你原先在 onActivityCreated() 中操作视图、设置监听器或加载数据,现在应该放在 onViewCreated():
class ExampleFragment : Fragment(R.layout.fragment_example) {

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        // 初始化UI
        val button = view.findViewById<Button>(R.id.button)
        button.setOnClickListener {
            // 点击事件逻辑
        }
    }
}

  1. 使用 onCreate() 做非UI初始化,如果是初始化 ViewModel、网络请求管理器等非UI组件,则推荐写在 onCreate():
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    viewModel = ViewModelProvider(this).get(ExampleViewModel::class.java)
}

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐