android - 生命周期 - Android Studio
问题描述
我创建了一个应用程序,正在使用谷歌地图 api,我的应用程序可以跟踪用户位置,我想做的是当我通过单击按钮打开地图屏幕并且我的应用程序跟踪用户位置但需要一些时间来跟踪用户取决于连接正确的?因此,当我的应用程序已经跟踪用户位置时,它将出现一个标记。如果我将地图屏幕更改为其他屏幕然后我回到地图屏幕它仍然显示标记而不再次跟踪或运行track function
。
这是我的track function
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
LatLng latLng = new LatLng(latitude, longitude);
if(currLocationMarker != null){
currLocationMarker.remove();
}
Geocoder geocoder = new Geocoder(getApplicationContext());
try {
List<Address> addressList = geocoder.getFromLocation(latitude, longitude, 1);
String str = addressList.get(0).getSubLocality()+", ";
//str += addressList.get(0).getCountryName();
str += addressList.get(0).getLocality();
currLocationMarker = mMap.addMarker(new MarkerOptions().position(latLng).title(str));
lokasisaya.setText(str);
mMap.addCircle(new CircleOptions()
.center(latLng)
.radius(10000)
.strokeWidth(5)
.strokeColor(0x550000FF));
} catch (IOException e) {
e.printStackTrace();
}
CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(latLng.latitude, latLng.longitude)).zoom(15).build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
解决方案
好吧,你正在删除最后一个Marker
,currLocationMarker.remove();
所以我假设你只需要维护最后一个位置。
最简单的方法是使用SharedPreferences
存储最后一个位置,然后当您再次启动活动时检查该位置是否在SharedPreferences
.
推荐阅读
- javascript - 在 JS 中突出显示纯 html
- mysql - MySQL 在日期之间搜索,但也在时间范围之间搜索
- javascript - 使用 requestAnimationFrame 而不是 setInterval
- php - 如何更改和抑制 JSON 结果中的某些字段键名?
- postgresql - 如何完全删除postgres?
- ios - 从 SWIFT 4.1 中的 Firebase 检索数据时,“下标”的模糊使用和无法调用非函数类型“AnyObject”的值错误
- python - 对于在文本中搜索单词的快速 python 包有什么建议吗?
- crystal-reports - Crystal Reports:两个表并排,来自一个查询 BEx
- rest - 如何让 PowerBI 使用受访问令牌保护的我的 RESTful 服务?
- twitter-bootstrap - 电话上的引导网格系统意外结果