2017-02-13 161 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

每次更新时都写下。如果你打电话再次获得最后一个已知位置,它会给你一个新的答案,但它不会更新旧的结果 –