我的重复任务没有被调用

时间:2012-03-27 01:06:11

标签: android

我正在尝试使用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);
        }

设置Setter的代码

Context context = getApplicationContext();
     setRecurringAlarm(context);

Android Manifest声明

<receiver android:name=".receiver.AlarmReceiver"></receiver>

在logcat中没有产生错误......警报永远不会触发。

1 个答案:

答案 0 :(得分:1)

嗯,这是不准确的......如果你把间隔设置为15分钟,你必须等待至少半小时才能确定它已经/没有被解雇。 之后设定的开始时间(20:15)。尝试用1分钟的间隔进行测试。并且,如果您需要更可靠的计划,请使用setRepeating()或可能set(),其中每个警报调用都会注册下一个警报调用。