0

需要明确的是:这是我的 Android 应用程序中的一个活动,旨在使用 GPS_PROVIDER 提取用户位置的坐标。Activity 包含一个按钮,当按下该按钮时,应该启动一个获取坐标数据的方法。问题是当没有先前已知的位置信息时(即如果手机最近重置),应用程序会崩溃。如果我打开地图应用程序(例如)并确定我的位置,然后重新打开我自己的应用程序并运行此方法,它会按预期工作。我的问题是为什么会发生这种崩溃和/或如何防止发生这种崩溃?感谢您的帮助,谢谢。

此方法在按下按钮时运行 - 并且在正确找到坐标时生成意图响应回调用活动:

protected void getCurrentLocation() {
    Location location = null;
    try {
        location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    } catch (IllegalArgumentException iae) { }

    if (location != null) {
        longV = location.getLongitude();
        latV  = location.getLatitude();
        response(longV, latV);
    } else {
        getCurrentLocation();
    }
4

1 回答 1

4

我猜你正在收到一个 StackOverflowException,因为如果locationnull调用完全相同的函数来创建一个无限循环......

如果没有最后知道的位置,您需要请求一个新位置。(getLastKnownLocation()无论调用多少次都不会自行改变。)

于 2012-10-29T20:00:04.347 回答