2014-07-02 26 views
8

Từ những gì tôi có thể thấy, nếu bạn lên lịch báo thức lặp lại vô thời hạn, nó sẽ không ngừng chạy cho đến khi bạn khởi động lại thiết bị hoặc gỡ cài đặt ứng dụng.Nhân viên báo thức Android có tiếp tục chạy sau khi cập nhật ứng dụng không?

Tôi đã tự hỏi, làm thế nào để chúng hoạt động trong trường hợp cập nhật ứng dụng? tức là bạn tải xuống phiên bản 1 của ứng dụng từ Cửa hàng Play, ví dụ: chạy ứng dụng và báo thức này bắt đầu chạy. Sau đó, phiên bản hai được phát hành và bản cập nhật tự động hoặc thủ công được thực hiện. Báo thức này vẫn tiếp tục chạy (hoặc bạn phải khởi động lại ứng dụng để bắt đầu báo thức)?

Trong trường hợp của tôi, tôi cần nó để làm như vậy, vì vậy tôi hy vọng rằng câu trả lời là nó sẽ chỉ tiếp tục chạy. Tuy nhiên, điều gì xảy ra sau đó nếu bạn thay đổi mã cảnh báo trong phiên bản 2?

Trả lời

1

Làm điều gì đó như this.

Về cơ bản, nếu mỗi lần ứng dụng của bạn bắt đầu chạy lại PendingIntent của bạn với cùng một ID, nếu nó không chạy thì sẽ không có gì xảy ra và nếu nó không chạy nó sẽ bắt đầu chạy.

Bằng cách này bạn không phải lo lắng về việc mất báo thức sau khi cập nhật.

8

Câu trả lời có vẻ là báo thức AlarmManager tiếp tục chạy sau khi cập nhật ứng dụng cho hầu hết các phiên bản Android. Chắc chắn cho Android 2.3.2 hoặc cao hơn. Các UninstallReceiver trong AlarmManagerService đã được cập nhật để xử lý cập nhật gói mà không giết chết các báo động - xem here nơi có những nhận xét rõ ràng:

// Gói này đang được cập nhật; đừng giết báo động của nó.

Mã này để xử lý này là không có trong 2.0.0 AlarmManagerService.UninstallReceiver

Tôi nhận ra điều này có lẽ là phần tốt nhất của 3 năm quá muộn để giúp OP, nhưng hy vọng nó có thể giúp đỡ người khác.

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