2009-12-08 34 views
7

Nhờ TasKiller Tôi có cách đáng tin cậy để tắt các cập nhật đến số AppWidget của mình từ AlarmManager!Android - AlarmManager recovery

Bây giờ, mỉa mai, tôi làm cách nào để khôi phục từ sự kiện như vậy? Cho đến nay tôi chỉ thấy rằng Alerts chỉ được khôi phục sau khi khởi động lại điện thoại.

Tôi có thể gắn mã khôi phục vào vài nơi như khác nhau Activity#onCreate thuộc về ứng dụng và tiện ích của tôi nhưng có cách nào tốt hơn không?

Ngoài ra nếu cảnh báo là OK - có cách nào để phát hiện và không chạy AlarmManager#setRepeating không?

Hoặc có hại gì khi chạy nhiều lần không?

Trả lời

5

Bây giờ, mỉa mai, tôi làm cách nào để khôi phục từ sự kiện như vậy?

Tôi đã nghe nói rằng Scotch đơn giúp.

Cho đến nay tôi chỉ thấy rằng Cảnh báo là chỉ được phục hồi sau khi khởi động lại điện thoại .

Chỉ khi bạn đang gắn BOOT_COMPLETED phát sóng Intent và thiết lập lại báo thức.

Kẻ sát nhân tác vụ đáng kể kỹ lưỡng, nhưng họ không thể dừng BroadcastReceiver từ việc nhận các chương trình phát sóng hệ thống, như BOOT_COMPLETED. Bạn được hoan nghênh tìm một số chương trình phát sóng khác mà bạn muốn nhận để giúp lấy lại quyền kiểm soát và thiết lập lại báo thức của bạn.

Ngoài ra, nếu cảnh báo là OK - là có cách phát hiện và không chạy AlarmManager # setĐặt lại? Hoặc là có một tác hại để chạy nó nhiều lần?

Bạn có thể cancel() báo thức hiện có. Vì vậy, nếu bạn lo ngại về các bản sao có thể, cancel() báo thức hiện tại (hy vọng sẽ không hoạt động yên lặng nếu báo thức không tồn tại), sau đó đặt báo thức.

+2

Bạn thậm chí không phải 'hủy' - khi bạn gọi lịch biểu trên cùng một mục đích đang chờ, lịch biểu của bạn sẽ tự động được đặt lại. Cảm ơn sự giúp đỡ của bạn Mark, nhiều đánh giá cao – Bostone

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