![mvvm_kolin.png](./assets/mvvm_kotlin.png)
val musicViewModel by lazy { getLiveDataViewModel(MusicViewModel::class.java) }
// fork的目的就是生成对应的MutableLiveData对象
musicViewModel.forkForArrayList(SearchMusic.Item::class.java)
.observe(
owner = this,
onStart = {/*开始*/},
onCancel = {/*取消,当activity销毁时,准确的说是musicViewModel的onCleared()触发时*/},
onFailed = { _, message ->
// 失败
false
}
,
onSuccess = { result ->
//成功
}
)
// 搜索音乐
musicViewModel.searchMusic(name)
interface MusicApi {
@GET("/searchMusic")
fun searchMusic(@Query("name")name:String):Observable<CommonResponse<ArrayList<SearchMusic.Item>>>
}
class MusicViewModel : AbsLiveDataViewModel() {
fun searchMusic(name: String) {
launchRemoteResp(MusicServiceCore) {
searchMusic(name)
}.commitForArrayList()
}
}