2010-06-13 28 views
6

Tôi đã đăng ký PendingIntent để requestLocationUpdates (nhà cung cấp, minTime, minDistance, PendingIntent). Nhưng khi người nhận phát sóng của tôi nhận được ý định này, làm cách nào để xóa yêu cầu này với removeUpdates (PendingIntent)? Người nhận không giữ tham chiếu đến PendingIntent gốc.Android: cách hủy yêu cầu cập nhật Vị trí với mục đích?

Trả lời

8

Bạn tạo tương đương PendingIntent. Nói cách khác, hãy tạo một số Intent khớp với tên bạn đã sử dụng ban đầu (mặc dù bạn có thể bỏ qua bất kỳ phần bổ sung nào), bọc cùng loại PendingIntent mà bạn đã sử dụng ban đầu và sử dụng số PendingIntent trong cuộc gọi removeUpdates().

+0

Cảm ơn bạn. Trong phương thức onReceive (context, intent) của người nhận, tôi gọi PendingIntent origPendingIntent = PendingIntent.getBroadcast (context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT) ngay lập tức với cùng một ý định được truyền vào để loại bỏ các bản cập nhật. Nhưng bằng cách nào đó, nó đã không xóa yêu cầu cập nhật. Tôi vẫn có thể nhận được các bản cập nhật. – wei

+0

@wei: Thử loại bỏ 'FLAG_UPDATE_CURRENT' và xem điều đó có hữu ích không. – CommonsWare

+0

Cảm ơn rất nhiều! Nó hoạt dộng bây giờ. Nó chỉ ra rằng tôi phải tạo một thể hiện Intent mới (không chắc chắn tại sao, tho) và đặt cờ là 0 để làm cho nó hoạt động. – wei

Các vấn đề liên quan