Skip to content

Instantly share code, notes, and snippets.

@dyguests
Created November 13, 2017 05:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dyguests/a632cd4c05025220fe9eabafe4150208 to your computer and use it in GitHub Desktop.
Save dyguests/a632cd4c05025220fe9eabafe4150208 to your computer and use it in GitHub Desktop.
RxJava2 + LiveData
package com.fanhl.architecturedemo.rxjava2
import android.arch.lifecycle.LifecycleOwner
import android.arch.lifecycle.MutableLiveData
import com.fanhl.architecturedemo.extensions.observe
import io.reactivex.Observable
/**
* desc:
* date: 2017/11/13
*
* @author fanhl
*/
class RxLiveData<T> : MutableLiveData<T>() {
fun asObservable(owner: LifecycleOwner): Observable<T> {
return Observable.create<T> { emitter ->
observe(owner) { data ->
try {
if (data != null) {
emitter.onNext(data)
} else {
emitter.onError(NullPointerException("com.fanhl.architecturedemo.rxjava2.RxLiveData.asObservable中发送的数据不能为null"))
}
} catch (e: Exception) {
emitter.onError(e)
}
}
}
}
}
@dyguests
Copy link
Author

话说 Observable 的生命周期咋个办呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment