接近警报不能移除

时间:2015-05-11 11:41:02

标签: android

我向locationManager添加了一些警告。我在删除该警报时遇到问题。当我删除警报时,它会继续工作并且不会被删除。这是代码:

public class DisplayLocation extends SupportMapFragment implements OnCameraChangeListener,
    LocationListener {

    LocationManager locationManager;
    @Override
    public View onCreateView(LayoutInflater arg0, ViewGroup arg1, Bundle arg2) {
        View v = super.onCreateView(arg0, arg1, arg2);
        locationManager = (LocationManager) getActivity().getSystemService(
                                                         getActivity().LOCATION_SERVICE);
        String []token = address.split(",");
        LatLng Position = new LatLng(Double.parseDouble(token[0]),
                                     Double.parseDouble(token[1]));
        Intent proximityIntent = new Intent("com.example.proximity");
        proximityIntent.putExtra("name",name);
        pendingIntent = PendingIntent.getActivity(getActivity().getBaseContext(), 5,
                                          proximityIntent,Intent.FLAG_ACTIVITY_NEW_TASK);
        locationManager.addProximityAlert(Position.latitude, Position.longitude, 
                                            Integer.parseInt(radius), -1, pendingIntent);
}

然后我在按钮中对此进行了编码,以便从另一个从arrayadapter

扩展的类中删除接近警报
LocationManager locationManager = (LocationManager)mContext.getSystemService(
                                                               Context.LOCATION_SERVICE);
Intent intent = new Intent(".Proximity");
PendingIntent pintent = PendingIntent.getActivity(mContext, 5, intent, 0);
locationManager.removeProximityAlert(pintent);

但这不起作用。

1 个答案:

答案 0 :(得分:0)

LocationManager.removeProximityAlert()的调用必须与用于添加警报的相同的 Intent一起传递。您正在构建一个新的Intent,虽然它的内容可能与原始内容相同,但它不是同一个对象。

因此,在设置提醒时,请将Intent保存在字段中,并在想要删除警报时使用它,而不是创建新提醒。