Android 我的位置下一次加载活动时会出现问题吗?
朋友们 我注意到一件事,当我的位置相同时,屏幕上不会显示我的位置重叠标记 当我更改模拟器位置值时,它会显示在屏幕上,我进入下一页,然后再次进入同一页,但它不会显示。是的,当我更改位置值时,它会再次显示。我想显示它总是如果位置改变或没有 有人教我怎么做吗 这是我的密码Android 我的位置下一次加载活动时会出现问题吗?,android,mylocationoverlay,Android,Mylocationoverlay,朋友们 我注意到一件事,当我的位置相同时,屏幕上不会显示我的位置重叠标记 当我更改模拟器位置值时,它会显示在屏幕上,我进入下一页,然后再次进入同一页,但它不会显示。是的,当我更改位置值时,它会再次显示。我想显示它总是如果位置改变或没有 有人教我怎么做吗 这是我的密码 onCreate() { myLocOverlay = new MyLocationOverlay(this, mapView); myLocOverlay.enableMyLocation();
onCreate()
{
myLocOverlay = new MyLocationOverlay(this, mapView);
myLocOverlay.enableMyLocation();
mapView.getOverlays().add(myLocOverlay);
mapView.postInvalidate();
zoomToMyLocation();
}
@Override
protected void onPause() {
super.onPause();
if (myLocOverlay != null)
myLocOverlay.disableMyLocation();
}
@Override
public void onResume() {
if (myLocOverlay != null)
myLocOverlay.enableMyLocation();
super.onResume();
}
private void zoomToMyLocation() {
GeoPoint myLocationGeoPoint = myLocationOverlay.getMyLocation();
if(myLocationGeoPoint != null) {
mapView.getController().animateTo(myLocationGeoPoint);
mapView.getController().setZoom(10);
}
else {
Toast.makeText(this, "Cannot determine location", Toast.LENGTH_SHORT).show();
}
}
如果您正在调用finish方法,而调用intent意味着您的另一个页面,那么您正在销毁页面中的所有值并向新页面移动 示例活动A活动B 从活动A移动到活动B 意向=新意向 意图。设置类 星状体 回到活动A
只需调用活动B的finish实际上原因是 当我第一次加载记录时,它会在现场获得gps位置。有时,当我参加此活动时,gps会花时间获取位置,我的代码被传递,但什么也没有出现 所以问题是,若在一段时间内并没有获得位置,那个么我应该等待它,并在我们得到它时显示出来 所以我实现了RunOnFirstFix来解决这个问题。另一件最重要的事情是使用Mapview.postInvalidate在Mapview上显示它 因此,如果我们遵循这一步骤,我们就不会有我的位置覆盖问题
code sample onCreate()
{
// new line
myLocOverlay.runOnFirstFix(showCurrentLocationIfObtainedLate );
}
Runnable showCurrentLocationIfObtainedLate = new Runnable() {
@Override
public void run() {
if(myLocOverlay.getMyLocation() != null)
{
mapView.getController().animateTo(myLocOverlay.getMyLocation());
mapView.postInvalidate();
}
}
};