私はいくつかの従来のイベント発行者によって呼び出されるイベントコールバックメソッドReactXにイベントを記録するにはどうすればいいですか?
public void onSomethingHappened(Information info) {
を持っています。
これをReactiveXで包み込みます。
これを行う方法?
UPDATE
私はPublishSubject<T>
クラスを発見し、AndroidのAPIからLocationListener
をラップするために、次の方法でこれを使用:
public class LocationPublisher implements LocationListener {
@Override
public void onLocationChanged(Location location) {
LocationPublisher.onNext(location);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
StatusPublisher.onNext(new BundleEx(provider, status, extras));
}
@Override
public void onProviderEnabled(String provider) {
EnablenessPublisher.onNext(new Enableness(provider, true));
}
@Override
public void onProviderDisabled(String provider) {
EnablenessPublisher.onNext(new Enableness(provider, false));
}
public final PublishSubject<Location> LocationPublisher = PublishSubject.create();
public final PublishSubject<BundleEx> StatusPublisher = PublishSubject.create();
public final PublishSubject<Enableness> EnablenessPublisher = PublishSubject.create();
public static class Enableness {
private final String provider;
private final boolean enabled;
public Enableness(String provider, boolean enabled) {
this.provider = provider;
this.enabled = enabled;
}
public String getProvider() {
return provider;
}
public boolean isEnabled() {
return enabled;
}
}
public static class BundleEx {
private final String provider;
private final int status;
private final Bundle extras;
public BundleEx(String provider, int status, Bundle extras) {
this.provider = provider;
this.status = status;
this.extras = extras;
}
public String getProvider() {
return provider;
}
public int getStatus() {
return status;
}
public Bundle getExtras() {
return extras;
}
}
}
は、この正しいアプローチですか?今、私はLocationPublisher
、StatusPublisher
とEnablenessPublisher
ですか?
あなたは基本的にはそうです、あなたはすべてのあなたのPublishSubjectsがLocationPublisher内のオブジェクトを購読することができます...観察可能な実装する任意のオブジェクトを購読することができます。もしそれが良いアプローチであれば?それは言うのが難しい...それは私のためによく見える。 –
問題は誰でも公開されたサブジェクトに値をプッシュでき、RxJavaには明らかにr/oサブジェクトの概念がないことです。 – Dims
r/o件名とは何ですか? –