Closed HeVTion closed 7 months ago
老师,其实不用传入setLifecycleOwner对象的。 因为,在使用ViewModel和LiveData的架构中,通常不需要直接将LifecycleOwner传递给网络请求库来管理请求的生命周期。ViewModel和LiveData已经为你提供了一种优雅的方式来处理与生命周期相关的逻辑。 如下,
class HomeViewModel : ViewModel() { /** * 模拟网络请求 */ private val data = MutableLiveData<String>() fun fetchData() { Http.getInstance() .setUrl("/api/weather/city/101010100") .setLifecycleOwner(this) .get(object : OnHttpListener<String> { override fun onHttpSuccess(p0: String?) { ToastUtils.showLong(p0) } override fun onHttpFail(p0: Throwable?) { ToastUtils.showLong(p0?.message) } }) val responseData = "这是从网络获取的数据" data.value = responseData } }
因为mv本身就自带生命周期的,即使是使用mvp这种,也可以让p自己去实现Lifecycle的。
不知道我的理解正确吗
否
LifecycleOwner这非常的鸡肋,因为很多地方是获取不到LifecycleOwner的,他只存在于activity和fragment中,这样就形成了一个绑定关系
现在不传入LifecycleOwner对象是不行的,只能去拿默认的,这样写又感觉很多此一举
小伙子,该 issue 被打回,打回的原因如下:
请重新提一个 issue 并纠正以上问题
提问模板太形式化了,有些问题能看得懂就行了,特殊问题需要记录详细。另外我也遇到了LifecycleOwner传参的问题,现在根本不需要传入
问题描述【必填】
老师,其实不用传入setLifecycleOwner对象的。 因为,在使用ViewModel和LiveData的架构中,通常不需要直接将LifecycleOwner传递给网络请求库来管理请求的生命周期。ViewModel和LiveData已经为你提供了一种优雅的方式来处理与生命周期相关的逻辑。 如下,
因为mv本身就自带生命周期的,即使是使用mvp这种,也可以让p自己去实现Lifecycle的。
不知道我的理解正确吗
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
否
issue 列表中是否有人曾提过类似的问题【必答】
否
是否已经搜索过了 issue 列表但还未能解决的【必答】
否