第一行代码第三版第5章有关Fragment 生命周期中onActivityCreated() 被废弃的问题
Android 9.0起废弃onActivityCreated()方法,因其与onViewCreated()和onCreate()功能重叠。替代方案:UI初始化移至onViewCreated(),非UI逻辑放入onCreate()。示例展示了在onViewCreated()中绑定视图事件,在onCreate()中初始化ViewModel等组件。这种调整符合现代Android开发中ViewModel
·
原文


从 Android API 级别 28(Android 9.0) 开始,onActivityCreated() 被标记为 deprecated。Google 给出的理由是:这个方法的职责和 onViewCreated()、onCreate() 重叠,语义不清晰。同时,现代 Android 开发中使用 ViewModel + LiveData + ViewBinding 已经不再需要它。换句话说:
原本放在 onActivityCreated() 的UI逻辑可以放在 onViewCreated();非UI的初始化逻辑可以放在 onCreate()。
替代方案
- 使用 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 {
// 点击事件逻辑
}
}
}
- 使用 onCreate() 做非UI初始化,如果是初始化 ViewModel、网络请求管理器等非UI组件,则推荐写在 onCreate():
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProvider(this).get(ExampleViewModel::class.java)
}
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)