Tôi đã tìm kiếm 3 ngày ngay bây giờ nhưng không tìm thấy giải pháp hoặc vấn đề/câu hỏi tương tự ở bất kỳ nơi nào khác. Đây là thỏa thuận:Trình kích hoạt cảnh báo đang chờ xử lý quá sớm
kích hoạt trong 1 giờ -> làm việc đúng
kích hoạt trong 2 giờ -> Goes của trong 1:23
kích hoạt trong 1 ngày -> Goes của trong ~ 11: 00
Vậy tại sao Trình báo thức lại không thể đoán trước và luôn luôn quá sớm? Hay tôi đang làm gì sai? Và có cách nào khác để nó có thể hoạt động chính xác không?
Đây là cách tôi đăng ký PendingIntent tôi trong AlarmManager (rút gọn):
AlarmManager alarmManager = (AlarmManager)parent.getSystemService(ALARM_SERVICE);
Intent myIntent = new Intent(parent, UpdateKlasRoostersService.class);
PendingIntent pendingIntent = PendingIntent.getService(parent, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
//Set startdate of PendingIntent so it triggers in 10 minutes
Calendar start = Calendar.getInstance();
start.setTimeInMillis(SystemClock.elapsedRealtime());
start.add(Calendar.MINUTE, 10);
//Set interval of PendingIntent so it triggers every day
Integer interval = 1*24*60*60*1000;
//Cancel any similar instances of this PendingIntent if already scheduled
alarmManager.cancel(pendingIntent);
//Schedule PendingIntent
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, start.getTimeInMillis(), interval, pendingIntent);
//Old way I used to schedule a PendingIntent, didn't seem to work either
//alarmManager.set(AlarmManager.RTC_WAKEUP, start.getTimeInMillis(), pendingIntent);
Nó sẽ là tuyệt vời nếu có ai có cách giải quyết. Cảm ơn vì bất kì sự giúp đỡ!
Cập nhật: 2 giờ trước nó đã hoạt động để kích hoạt nó với khoảng thời gian là 2 giờ, nhưng sau đó nó được kích hoạt sau 1:20 giờ. Nó trở nên thực sự kỳ lạ. Tôi sẽ theo dõi các kích hoạt xuống với một logfile và đăng nó ở đây vào ngày mai.
Cập nhật: PendingIntent được lên lịch chạy 3 giờ một lần. Từ dòng thứ hai của log nó có vẻ như một PendingIntent theo lịch trình cũ vẫn chạy:
[2012-5-3 2:15:42 519] Updating Klasroosters
[2012-5-3 4:15:15 562] Updating Klasroosters
[2012-5-3 5:15:42 749] Updating Klasroosters
[2012-5-3 8:15:42 754] Updating Klasroosters
[2012-5-3 11:15:42 522] Updating Klasroosters
Nhưng, tôi chắc chắn rằng tôi đã hủy bỏ kế hoạch PendingIntent trước khi tôi sắp xếp một hình mới. Và mọi PendingIntent không được tái tạo theo cùng một cách, vì vậy nó phải giống hệt nhau. Nếu không, câu hỏi chủ đề này không liên quan nữa.
Tôi không thể tái tạo vấn đề của bạn. Chính xác làm thế nào để bạn thay đổi 'bắt đầu' để tạm ứng nó 2 giờ, cũng 1 ngày? – Sam
Tôi đã thêm logfile và phát hiện ra rằng có lẽ một PendingIntent cũ vẫn đang chạy. – Wezelkrozum
Tôi cũng gặp vấn đề tương tự, bạn có giải pháp làm việc không? – david