android alarmmanager重置

时间:2013-03-08 18:46:47

标签: android alarmmanager reset

我的应用程序使用以下代码将Alaram设置为“每日”执行服务。

AlarmManager alarmManager = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE);
        Intent i = new Intent(ctx, SchedulerEventReceiver.class); // explicit// intent

        Calendar now = Calendar.getInstance();
        now.add(Calendar.SECOND, 20);
        PendingIntent intentExecuted = PendingIntent.getBroadcast(ctx, new Random().nextInt(), i,PendingIntent.FLAG_CANCEL_CURRENT);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, now.getTimeInMillis(), AlarmManager.INTERVAL_DAY, intentExecuted);

adb shell dumpsys alarm向我展示了适当的细节。喜欢它计划每天运行。但是,当我将.apk安装到我的手机时,它正在重复执行。它不会等待一天执行。

我不知道如何重置手机中的闹钟设置。我卸载了应用程序和新安装的应用程序,但它无法正常工作。谁能告诉我有什么问题?

2 个答案:

答案 0 :(得分:1)

我用过这个,这对我来说很好。我在18天后使用此警报触发。然后再过18天等等:

long time = 1555200000L; //18 days = 18*24*60*60*1000 = 1555200000L
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, tag, i, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+time, time, pi); 

答案 1 :(得分:0)

现在,你告诉它在20分钟内完成

now.add(Calendar.SECOND, 20);

您需要添加当天的小时和可能的分钟

 now.add(Calendar.HOUR, 12) //set your hour here. noon right now

now.add(Calendar.HOUR_OF_DAY, 12)

Calendar