Android解决GPS定位时LocationManager只能绑定一个LocationListener的问题

之前做项目时遇到了如题的小困难, 想了一个有点解决方法, 上周在济南发现有些初学者似乎在这里有点困扰, 就发出来供大家参考下.

首先自定义一个接口

public interface CRLocationListeneri {
	public void onLocationChanged(Location location);
}

然后些一个类, 该类需要implements LocationListener从而代替android.location.LocationListener

public class CRLocationlistener implements LocationListener {
	
	private static final String TAG = "CRLocationlistener";
	private static ArrayList<CRLocationListeneri> LocationListeneriList = new ArrayList<CRLocationListeneri>(
			2);


	public void onLocationChanged(Location location) {
		// TODO Auto-generated method stub
		for (i = 0; i < LocationListeneriList.size(); i++) {

			LocationListeneriList.get(i).onLocationChanged(location);
		}
	}

	public void onProviderDisabled(String provider) {
		// TODO Auto-generated method stub

	}

	
	public synchronized static void requestUpdates(
			CRLocationListeneri LocationListeneri) {
		LocationListeneriList.add(LocationListeneri);
	}

	public synchronized static void removeUpdates(
			CRLocationListeneri LocationListeneri) {
		LocationListeneriList.remove(LocationListeneri);
	}


	public void onProviderEnabled(String provider) {
		// TODO Auto-generated method stub

	}

	public void onStatusChanged(String provider, int status, Bundle extras) {
		// TODO Auto-generated method stub

	}

}
之后就可以通过

locationManager.requestLocationUpdates(
				LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);
CRMyLocationOverlay.enableMyLocation();

将其与多个Listener绑定, 分别对Location进行不同的处理了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值