我是新的Android編碼器,並且在請求本地化更新時遇到問題。它是如何工作的 - requestLocationUpdates()+ LocationRequest/Listener
我使用http://developer.android.com/training/location/receive-location-updates.html的教程。
我的應用程序可以處理異常,正確獲取緯度和格式,地理編碼器可以處理顯示地址。但我只要求一次位置 - 或位置發生變化。我想要做時間間隔。現在我開始從教程中實現代碼,它看起來像這樣:
public class MainActivity extends Activity implements
GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener,
LocationListener {
private static final int MILLISECONDS_PER_SECOND = 1000;
public static final int UPDATE_INTERVAL_IN_SECONDS = 5;
private static final long UPDATE_INTERVAL =
MILLISECONDS_PER_SECOND * UPDATE_INTERVAL_IN_SECONDS;
private static final int FASTEST_INTERVAL_IN_SECONDS = 1;
private static final long FASTEST_INTERVAL =
MILLISECONDS_PER_SECOND * FASTEST_INTERVAL_IN_SECONDS;
private TextView tvStatus;
private TextView tvLatitude;
private TextView tvLongitude;
LocationRequest mLocationRequest;
LocationClient mLocationClient;
Location mCurrentLocation;
boolean bNetworkEnabled;
boolean bGPSEnabled;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvStatus = (TextView)findViewById(R.id.tvStatus);
tvLatitude = (TextView)findViewById(R.id.tvLatitude);
tvLongitude = (TextView)findViewById(R.id.tvLongitude);
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(UPDATE_INTERVAL);
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
mLocationClient = new LocationClient(this, this, this);
checkProviders();
}
因此,已經有間隔實施和位置請求。但在我給的鏈接之前有一個評論,我應該使用requestLocationUpdates()
(可能是onCreate()
,onStart()
和onStop()
刪除請求),但我有問題。所以,Eclipse給我展示了3種方法:
requestLocationUpdates(LocationRequest request, LocationListener listener)
requestLocationUpdates(LocationRequest request, PendingIntent CallbackIntent)
requestLocationUpdates(LocationRequest request, LocationListener listener, Looper looper)
所以我覺得第一個在這個地方是最正確的。我應該在LocationListener
插槽中放置什麼?我請求解釋它是如何工作的。
正是我搞砸了。謝謝。 :) –
所以我知道'requestLocationUpdates'將返回Location到PendingIntent,但我可以在哪裏訪問返回的位置? – geckob
要調用此請求,您需要一個類來實現LocationUpdates。該實現具有方法OnLocationChanged(位置位置)。這是您訪問返回位置的地方。公共類MyLocationListener實現LocationListener {...} – Totalys