我向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);
但这不起作用。
答案 0 :(得分:0)
对LocationManager.removeProximityAlert()
的调用必须与用于添加警报的相同的 Intent
一起传递。您正在构建一个新的Intent
,虽然它的内容可能与原始内容相同,但它不是同一个对象。
因此,在设置提醒时,请将Intent
保存在字段中,并在想要删除警报时使用它,而不是创建新提醒。