2017-02-13 128 views
0

它不清楚如何使用位置偵聽器。如何使用位置監聽器?

難道我這樣做:

public Location actualLocation; 

private class mLocationListener implements LocationListener { 

    public void onLocationChanged(Location location) { 
     actualLocation = location; 
    } 

    public void onStatusChanged(String s, int i, Bundle b) { 
    } 

    public void onProviderDisabled(String s) { 
    } 

    public void onProviderEnabled(String s) { 
    } 
} 

//Middle of code 
currentLatitude = actualLocation.getLatitude() 
currentLongitude = actualLocation.getLongitude() 

或本:

public Location actualLocation; 

private class mLocationListener implements LocationListener { 

    public void onLocationChanged(Location location) { 
    } 

    public void onStatusChanged(String s, int i, Bundle b) { 
    } 

    public void onProviderDisabled(String s) { 
    } 

    public void onProviderEnabled(String s) { 
    } 
} 

//Middle of code 
actualLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

currentLatitude = actualLocation.getLatitude() 
currentLongitude = actualLocation.getLongitude() 

有使用變量並沒有在這個代碼片段聲明。這是有目的的。爲了簡單起見,我縮短了代碼。

更新: 我的問題是:?我使用getLastKnow位置還是手動保存每次運行的位置? ¿工作原理是否一樣?

+0

你想使用LocationListener實現什麼 –

回答

0

您需要調用LocationManager.registerLocationUpdates。您將LocationListener傳遞給該調用,並且框架將在具有新位置時調用這些函數。

+0

我現在更新了我的問題,所以它更清晰。我基本上想知道locationUpdates是否更新getLastKnowLocation,還是每次更新時都必須手動編寫新位置? –

+0

每次更新時都寫下。如果你打電話再次獲得最後一個已知位置,它會給你一個新的答案,但它不會更新舊的結果 –