好吧,所以我正在嘗試使用retrofit2實現rxJava2。目標是隻打一次電話並將結果廣播到不同的班級。例如:我在後端有一個geofences列表。我需要在我的MapFragment列表中顯示它們在地圖上,但我也需要這些數據來爲實際觸發器設置pendingIntent服務。Android單個觀察者在單獨的類中有多個用戶
我嘗試下面這個awnser,但我得到的所有類型的錯誤: Single Observable with Multiple Subscribers
目前的情況如下:
GeofenceRetrofitEndpoint:
public interface GeofenceEndpoint {
@GET("geofences")
Observable<List<Point>> getGeofenceAreas();
}
GeofenceDAO:
public class GeofenceDao {
@Inject
Retrofit retrofit;
private final GeofenceEndpoint geofenceEndpoint;
public GeofenceDao(){
InjectHelper.getRootComponent().inject(this);
geofenceEndpoint = retrofit.create(GeofenceEndpoint.class);
}
public Observable<List<Point>> loadGeofences() {
return geofenceEndpoint.getGeofenceAreas().subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.share();
}
}
MapFragment /其它類,我需要的結果
private void getGeofences() {
new GeofenceDao().loadGeofences().subscribe(this::handleGeoResponse, this::handleGeoError);
}
private void handleGeoResponse(List<Point> points) {
// handle response
}
private void handleGeoError(Throwable error) {
// handle error
}
我在做什麼錯的,因爲當我打電話new GeofenceDao().loadGeofences().subscribe(this::handleGeoResponse, this::handleGeoError);
它做每一次單獨調用。 Thx