有可能,android重启后会清除最后一个已知位置吗? 昨天我的代码运行得非常好,但今天重新启动我的手机(AND模拟器)后,似乎.getLastKnownLocation(见下文)返回null,这导致nullPointerException ... 你能证实吗? 我该如何避免这个问题?我正在拼命寻找答案
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
...
Location locUser = lm
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
posUser = new GeoPoint((int) (locUser.getLatitude() * 1E6),
(int) (locUser.getLongitude() * 1E6));
如果有人能给我一个暗示或指出我的错误,那就太好了。
很好的问候,Poeschlorn
答案 0 :(得分:2)
对getLastKnownLocation()
的调用不会阻止 - 这意味着如果当前没有可用的位置,它将返回null
,这很可能是在设备重启后。如果Android在用户关闭设备时缓存当前位置,我会感到惊讶,因为设备可能会在再次重新打开之前移动。
您需要将LocationListener
传递给requestLocationUpdates()
method,这样可以为您提供位置的异步更新。