アプリの動作方法により、ユーザーの現在地を同期的に取得する必要があります。現在の実装では、 を使用しcom.google.android.gms.location.LocationListener
て位置情報の更新を受け取ります。問題は、最初の呼び出しを試みる前にサーバー側のロケーションを更新する必要があることです。そうしないと、ユーザーは誤ったデータを取得します。
LocationServices.FusedLocationApi.getLastLocation()
これには適していません。なぜなら、a) 常に null を返すように見える (何らかの理由で)、および b) ユーザーの最後の既知の場所をサーバー側に既に保存しているため、最後の既知の場所を取得してサーバーに送信することは冗長です.
疑似コード
//this is the first call I need to make
webservice.appStart(AppStartBody body);
//then I want to retrieve the current location and send it to the server
webservice.setGeoLocation(getCurrentLocation());
//finally, I retrieve the items on the server based on the location
webservice.getListItems();
最初の位置情報更新イベントを待つことは、避けたい可能性です。なぜなら、それがいつ発生するかわからないためです。待つのが好き。