0

我的应用程序使用以下代码设置 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 安装到手机时,它会重复执行。它不会等待一天执行。

我不知道如何重置手机中设置的闹钟。我卸载了应用程序和新安装的应用程序,但它没有工作。有人可以告诉我出了什么问题吗?

4

2 回答 2

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); 
于 2013-03-08T19:06:07.717 回答
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)

日历

于 2013-03-08T18:55:08.750 回答