2012-07-25 39 views
5

Tôi đang mã hóa ứng dụng đồng hồ báo thức và tôi muốn biết điều gì sẽ xảy ra, khi tôi đặt báo thức với AlarmManager, ví dụ lúc 2:59 sáng (đây không phải là thời gian báo thức của tôi, đây là lúc WHEN tôi đặt một số báo động), và lúc 3:00 sáng sẽ có thời gian thay đổi tự động từ mùa hè đến mùa đông (DST). Điều gì sẽ xảy ra với báo thức được lập biểu của tôi? Tôi không tìm thấy gì trong tài liệu và không dễ dàng để kiểm tra, ít nhất tôi phải thay đổi ngày và đợi vài giờ ... Tôi không kiên nhẫn;)Android AlarmManager và DST/Timezone/Thời gian thay đổi?

Bài toán tiếp theo - Tôi cũng tò mò, điều gì sẽ xảy ra với báo thức của tôi được đặt bằng AlarmManager khi người dùng thay đổi múi giờ. Điều này may mắn là khá dễ dàng để kiểm tra, và tôi thấy, android là khá "thông minh" và sắp xếp lại báo động tự động. Vì vậy, khi trong múi giờ của tôi là ví dụ 9:00 và tôi đặt báo thức vào 10:00 và chuyển múi giờ (+1 giờ), thời gian thực tế là 10:00, android sẽ lên lịch lại báo thức của tôi thành 11:00, như mong đợi. Điều này là rất tốt, tuy nhiên, tôi đã không tìm thấy bất cứ điều gì trong tài liệu ...

Bất kỳ ai có thêm thông tin chính thức? Thx

Trả lời

10

RTCRTC_WAKEUP sử dụng System.currentTimeMillis() như timebase, mà là trong thời gian UTC và do đó không phụ thuộc vào sự thay đổi múi giờ, ánh sáng ban ngày thay đổi thời gian tiết kiệm vv

+1

tuyệt vời, đó là điều tôi muốn biết. Thx rất nhiều ... Tôi tìm thấy nó cũng trong tài liệu, sai lầm của tôi. – qkx

+1

Tuy nhiên, nếu người dùng tự đi vào cài đặt ngày và giờ và làm thay đổi thời gian/ngày của hệ thống, điều này sẽ vẫn ảnh hưởng đến bạn. – matt5784

3

Alarm sẽ chỉ phụ thuộc vào thời gian hệ thống. Báo động sẽ không bị ảnh hưởng bởi tiết kiệm ánh sáng ban ngày, chỉ thay đổi thời gian của hệ thống. Báo thức sẽ theo thời gian của hệ thống và bất kỳ vùng nào, thiết bị đang ở (hoặc sẽ vào)

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