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