0
我試圖用AlarmManager來完成重複任務。我使用setInexactRepeating(),並設置間隔爲每15分鐘(只用於測試目的),但是,它似乎並不奏效。有任何想法嗎?我定期任務不會被調用
這裏是我的代碼:
AlarmReceiver
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.w("CacheCrusader", "Recurring Job: Clearing Cache");
}
}
二傳手
private void setRecurringAlarm(Context context) {
Calendar updateTime = Calendar.getInstance();
updateTime.set(Calendar.HOUR_OF_DAY, 20);
updateTime.set(Calendar.MINUTE, 15);
Intent downloader = new Intent(context, AlarmReceiver.class);
PendingIntent recurringDownload = PendingIntent.getBroadcast(context,
0, downloader, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarms = (AlarmManager) getSystemService(
Context.ALARM_SERVICE);
alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP,
updateTime.getTimeInMillis(),
AlarmManager.INTERVAL_FIFTEEN_MINUTES, recurringDownload);
}
代碼設置二傳手
Context context = getApplicationContext();
setRecurringAlarm(context);
Android清單宣言
<receiver android:name=".receiver.AlarmReceiver"></receiver>
logcat中沒有生成錯誤...警報只是從不發生。
權。不精確的事情設置了一個地板。您的鬧鐘不會超過15分鐘。上限比這更大。 – Argyle 2012-03-27 02:20:40
感謝您的回答......不幸的是,我一直在等待4個多小時,警報仍然沒有被觸發。 – 2012-03-27 04:00:41
也許你的應用崩潰了?這將清除警報。在任何情況下,使用'set()'手動註冊下一個警報是使用警報的最可靠的方法。你可能想嘗試一下。 – 2012-03-27 04:13:58