我的应用程序使用以下代码将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安装到我的手机时,它正在重复执行。它不会等待一天执行。
我不知道如何重置手机中的闹钟设置。我卸载了应用程序和新安装的应用程序,但它无法正常工作。谁能告诉我有什么问题?
答案 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)