Я использую java
и Kotlin
в своем проекте, и я использую с EventBus
, но не работаю с Kotlin
, потому что я использую RX
между Java
кодом и Kotlin
вместоEventBus
, но не получите никакого результата в Kotlin class
.
Мой код похож на ниже:
object EventBusTest {
private val publisher = PublishSubject.create<Any>()
@JvmStatic
fun publish(event: Any) {
publisher.onNext(event)
}
// Listen should return an Observable and not the publisher
// Using ofType we filter only events that match that class type
fun <T> listen(eventType: Class<T>): Observable<T> = publisher.ofType(eventType)
}
И я использую в Java class
:
EventBusTest.publish(123);
И я вхожу в Kotlin class
:
EventBusTest.listen(Int::class.java).subscribe{
Log.i("LOG", "result: $it")
}
Но я не могу получить никакого результата.
Ниже - мои библиотеки:
rxKotlin : "io.reactivex.rxjava2:rxkotlin:${versions.rxKotlin}",
....
implementation 'io.reactivex.rxjava2:rxjava:2.1.9'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
implementation 'com.netflix.rxjava:rxjava-android:0.20.3'