2012-01-07 72 views
6

Trong ứng dụng của tôi, tôi thiết lập một báo độngAlarmManager đối tượng sau khi tắt và trên điện thoại

AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
... 
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
... 
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent); 

Nó hoạt động tốt, trừ khi tôi tắt và bật điện thoại.

Cụ thể hơn, giả sử lúc 10:20, tôi đặt báo thức thành 10:22 và tôi tắt và bật điện thoại lúc 10:21, báo thức sẽ không hoạt động.

Điều gì có thể là vấn đề? Có phải đó là một vấn đề phát sóng của pendingIntent ở đó hay tôi nên đặt một số cờ của đối tượng alarmManager để nó hoạt động trong các điều kiện như vậy?

+1

bạn có thể kiểm tra http://stackoverflow.com/questions/5072451/clarification-of-alarmmanager-behavior-in-android này. trông tương tự – nandeesh

Trả lời

17

Các tài liệu về AlarmManager nói rằng:

báo động đăng ký được giữ lại trong khi thiết bị đang ngủ (và tùy chọn có thể đánh thức các thiết bị lên nếu họ đi tắt trong thời gian đó), nhưng sẽ bị xóa nếu nó bị tắt và khởi động lại.

Dường như AlarmClock được mặc định bởi Android không hoạt động ngay cả sau khi khởi động lại.

Cách để báo thức hoạt động sau khi khởi động lại, là khởi động ứng dụng của bạn khi khởi động hoàn thành và thiết lập lại tất cả các lỗi bằng AlarmManager. (Trong thực tế, bạn có thể chỉ muốn thiết lập báo thức bằng cách sử dụng một Broadcast, không bắt đầu ứng dụng của bạn)

Here là một câu hỏi StackOverflow giải quyết việc ăn trưa một ứng dụng khi khởi động.

Bạn cũng có thể kiểm tra cách AlarmClock mặc định thực hiện việc này bằng cách đọc từ nguồn. Bạn có thể đọc và tải xuống từ here

+0

có bao gồm tắt màn hình không? –

+0

'tắt màn hình 'có nghĩa là thiết bị đang ngủ. Báo thức sẽ được giữ lại khi bạn tắt màn hình và không tắt hoàn toàn điện thoại. –

+1

Tôi hiểu, vậy điều gì sẽ xảy ra nếu báo thức được đặt lặp lại và thiết bị sẽ ngủ trong một thời gian dài? nó có nghĩa là nó sẽ nhận được nhiều ý định (của cùng một báo động) cùng một lúc? –

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