Libreria RxJava

RxJava è una libreria di programmazione reattiva per comporre programmi asincroni e basati su eventi. usando sequenze osservabili.

La libreria Maps Rx consente di ricevere sequenze osservabili per eventi asincroni su Maps SDK per Android e Places SDK per Android per poter sfruttare il ricco set di funzioni RxJava.

Installazione

Per installare la libreria Maps Rx nel tuo progetto Google Maps:

  1. Aggiungi le seguenti dipendenze al file build.gradle a livello di modulo:

    dependencies {
        // RxJava bindings for the Maps SDK
        implementation("com.google.maps.android:maps-rx:1.0.0")
    
        // RxJava bindings for the Places SDK
        implementation("com.google.maps.android:places-rx:1.0.0")
    
        // It is recommended to also include the latest Maps SDK, Places SDK and RxJava so you
        // have the latest features and bug fixes.
        implementation("com.google.android.gms:play-services-maps:19.0.0")
        implementation("com.google.android.libraries.places:places:3.5.0")
        implementation("io.reactivex.rxjava3:rxjava:3.1.8")
    
  2. Ricrea il progetto in Android Studio per sincronizzare queste modifiche.

Esempio di utilizzo

Ricevi una funzione osservabile per gli eventi di clic su un indicatore come funzione di estensione sull'oggetto GoogleMap:

googleMap.markerClickEvents()
  .subscribe { marker ->
    Log.d("MapsRx", "Marker ${marker.title} was clicked")
  }

L'esempio successivo mostra come utilizzare l'operatore RxJava, merge, per combinare Vari eventi della videocamera in un singolo stream osservabile:

Observable.merge(
  googleMap.cameraIdleEvents(),
  googleMap.cameraMoveEvents(),
  googleMap.cameraMoveCanceledEvents(),
  googleMap.cameraMoveStartedEvents()
).subscribe {
  // Notified when any camera event occurs
}

Passaggi successivi