应在哪个Android生命周期方法中观察LiveData对象?
Android LiveData观察方法的正确生命周期选择
可选选项
onResume()onRestart()onCreate()onDestroy()
正确答案
正确的生命周期是 onCreate()
理由说明
LiveData是Android官方推出的生命周期感知型可观察数据容器,只有在绑定的生命周期所有者处于活跃状态时才会下发数据更新,生命周期销毁时会自动解绑观察者。
- 排除
onResume()、onRestart():这两个方法会在页面每次回到前台时重复执行,如果在此处注册LiveData观察者,会重复创建多个相同的Observer实例,导致同一份数据更新被多次回调,触发重复的页面刷新、逻辑执行等异常问题。 - 排除
onDestroy():该方法是组件销毁前的最后一个生命周期回调,此时注册观察者完全无法接收有效数据更新,还可能因组件即将销毁触发内存泄漏风险。 - 选择
onCreate()的核心原因:- 整个组件生命周期内仅会执行一次,保证仅注册唯一的Observer实例,不会出现重复回调问题
- 即使在onCreate阶段完成注册,LiveData也不会提前下发数据,会等待生命周期所有者进入STARTED/RESUMED活跃状态后才会推送更新,符合业务逻辑执行时机要求
- 当组件最终走到
onDestroy()状态时,LiveData会自动解绑注册的Observer,无需手动处理解绑逻辑,大幅降低内存泄漏风险
内容的提问来源于stack exchange,提问作者Anshika Choudhary
相关产品推荐
相关产品推荐

