Android 更新mapview上的当前位置,但locatinListenor正在使用中
我有一个mapActivity,在这里我注册了我的MapView小部件,我正在运行一个在后台检查位置数据的服务。我通过广播接收器在mapactivity中启动服务,如下所示Android 更新mapview上的当前位置,但locatinListenor正在使用中,android,locationlistener,Android,Locationlistener,我有一个mapActivity,在这里我注册了我的MapView小部件,我正在运行一个在后台检查位置数据的服务。我通过广播接收器在mapactivity中启动服务,如下所示 public class MainActivity extends MapActivity { private MapView view; protected void onCreate(Bundle savedInstanceState) { view = (MapView) fin
public class MainActivity extends MapActivity {
private MapView view;
protected void onCreate(Bundle savedInstanceState) {
view = (MapView) findViewById(R.id.themap);
view.setBuiltInZoomControls(true);
Intent in = new Intent();
MyReceiver locationRecvr = new MyReceiver();
locationRecvr.onReceive(getApplicationContext(), in);
}
......................
}
myReveiver.java
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "MyReceiver Started..",Toast.LENGTH_SHORT).show();
Log.v("Debug", "MyReceiver Started..");
Intent myIntent=new Intent(context, ServiceLocation.class);
context.startService(myIntent);
}
}
myservice和LocationListener就是这样的
public class ServiceLocation extends Service implements LocationListener {
......
.....
....
}
我的问题是当位置发生更改时,如何在mapview上更改该位置如何在onLocationchanged()方法中获取mapview引用,或者如何向mapActivity发送纬度和经度
提前感谢在位置侦听器中更新用户位置时发送广播。 并更新地图中的位置。
在广播意图中,您还可以传递更新的位置。通过您的服务,您可以向MapActivity发送Lat/Longs。 您可以从那里开始MapActivity,方法是将圈数/长数放入Intent Extra 在地图活动中--
我们需要使用locationManager和LocationUpdate作为
locationManager.requestLocationUpdates(provider, 400, 1, this);
我们可以根据需要设置表示距离和时间的参数。
然后我们应该定义一个函数
public void onLocationChanged(Location location)
{
}
有关更多信息谢谢您的回复。你能解释一下我如何在mapactivity plz中发送和接收……试着实现广播接收器。查找braodcast Receicever请告诉我在哪里必须编写这些函数,在mapActivity中或在我实现LocationListener的服务类中?您必须在mapActivity中编写上述两个函数。每当您的服务从LocationListener获得新的更新时,它都会向MapActivity发送最新的lat/long。
public void onLocationChanged(Location location)
{
}