2016-05-13 10 views
0

Ich möchte wissen, ob ich eine Standortanfrage stellen kann, bevor der Google API-Client verbunden ist. Wird die Anfrage in die Warteschlange eingereiht und ausgeführt, nachdem der Client verbunden wurde?Wird eine Standortanfrage gestellt, bevor der Google API-Client in die Warteschlange eingereiht wird?

Von Receiving Location Updates von Googles Android-Training, so scheint es nicht:

Vor Ort Updates anfordern, Ihre App Ortungsdienste verbinden muss und eine Standortanfrage machen. Die Lektion zum Ändern der Standorteinstellungen zeigt Ihnen, wie Sie dies tun. Sobald eine Standortanforderung vorhanden ist, können Sie die regulären Aktualisierungen starten, indem Sie requestLocationUpdates() aufrufen. Tun Sie dies im onConnected() - Callback des Google API-Clients, der aufgerufen wird, wenn der Client bereit ist.

Aber von diesem Google Android blog post, es scheint nicht unmöglich:

Ein weiteres neues Feature von API-Aufrufe ist Einreihen, die Sie Methoden lesen, bevor Sie verbunden sind, die API-Clients aufrufen können.

Werde ich Standortupdates erhalten, wenn ich vor dem Verbinden des Google API-Clients Folgendes anrufe?

LocationServices.FusedLocationApi.requestLocationUpdates(
    mGoogleApiClient, 
    mLocationRequest, 
    this); 

wo this ein LocationListener ist.

Danke.

Antwort

0

Ich fand Transmitting Network Data Using Volley in meinen Forschungen und es könnte Ihnen auch helfen.

Volley bietet folgende Vorteile:

  • Automatische Planung von Netzwerkanforderungen.
  • Mehrere gleichzeitige Netzwerkverbindungen.
  • Transparente Disk und Memory-Response-Caching mit Standard-HTTP-Cache Kohärenz.
  • Unterstützung für die Priorisierung von Anträgen.
  • Annullierungsanfrage-API. Sie können eine einzelne Anfrage abbrechen, oder Sie können Blöcke oder Bereiche von Anfragen zum Abbrechen setzen.
  • Einfache Anpassung, z. B. für Wiederholung und Backoff.
  • Starke Reihenfolge, die es einfach macht, Ihre Benutzeroberfläche mit Daten asynchron aus dem Netzwerk abgerufen zu füllen.
  • Debugging- und Tracing-Tools.

Damit haben Sie die Möglichkeit, zu verwalten, wie Warteschlangen von Standortanfragen bearbeiten. Sie können eine Anforderungswarteschlange einrichten, um Ihr eigenes benutzerdefiniertes Verhalten mithilfe der Komfortmethode Volley.newRequestQueue bereitzustellen.

Wenn Sie nur eine einmalige Anfrage stellen und den Thread-Pool nicht verlassen möchten, können Sie die RequestQueue überall dort anlegen, wo Sie sie benötigen, und stop() auf der RequestQueue aufrufen, sobald Ihre Antwort oder Ihr Fehler vorliegt Komm zurück und benutze die Volley.newRequestQueue() -Methode.

Setting up a RequestQueue benötigt die folgenden zwei Dinge, seine Arbeit zu tun:

  1. ein Netzwerk Transport der Anfragen auszuführen
  2. ein Cache-Cache

Ein Ausschnitt zu handhaben ist in der Dokumentation angegeben, die die Schritte zum Einrichten einer RequestQueue zeigt.

Zusätzlich zu diesem Snippet, dieses SO Post - How do I use the Volley network request queue? könnte Ihnen auch eine Lösung geben, wie es implementiert ist.