【发布时间】:2020-11-29 03:49:51
【问题描述】:
Android Studio 5,RxJava2
在我的活动中:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Debug.d(TAG, "onCreate: savedInstanceState = $savedInstanceState")
setContentView(R.layout.films_rx_java_activity)
binding = FilmsRxJavaActivityBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
val listType: ListTypeEnum = intent.getSerializableExtra(LIST_TYPE) as ListTypeEnum
initLogic()
}
private fun initLogic() {
val viewModelProvider = ViewModelProviders.of(this)
filmsRxJavaViewModel = viewModelProvider.get(FilmsRxJavaViewModel::class.java)
var dispose = filmsRxJavaViewModel.isShowProgress
.subscribe { it ->
Debug.d(TAG, "initLogic: isShowProgress = $it")
}
}
在我的 ViewModel 中:
import io.reactivex.subjects.PublishSubject
class FilmsRxJavaViewModel(application: Application) : AndroidViewModel(application) {
var isShowProgress: PublishSubject<Boolean> = PublishSubject.create()
init {
Debug.d(TAG, "init:")
isShowProgress.onNext(true)
loadData()
}
fun loadData() {
Debug.d(TAG, "loadData")
isShowProgress.onNext(false)
}
在logcat中:
myRxJavaViewModel(16488): init:
myRxJavaViewModel(16488): loadData
为什么不在我的活动中调用.subscribe {。结果打印出来
initLogic: isShowProgress =
【问题讨论】: