android– 重复警报调用甚至时间过去了

android– 重复警报调用甚至时间过去了,第1张

概述我创建了报警演示.在那个演示中,我重复一个警报.我的演示中有一个问题.即使时间过去,我的警报也称为服务.我正在设置16:08:00的时间并调用该警报,以便在经过该时间后调用我的警报服务.请帮我停止此标准.AlarmManageralarmManager=(AlarmManager)ctx.getSystemService(ctx.ALA

我创建了报警演示.在那个演示中,我重复一个警报.我的演示中有一个问题.即使时间过去,我的警报也称为服务.我正在设置16:08:00的时间并调用该警报,以便在经过该时间后调用我的警报服务.请帮我停止此标准.

 AlarmManager alarmManager = (AlarmManager)ctx.getSystemService(ctx.ALARM_SERVICE);        Calendar calendar = Calendar.getInstance();        calendar.set(Calendar.HOUR_OF_DAY, 16);        calendar.set(Calendar.MINUTE, 8);        calendar.set(Calendar.SECOND, 0);           PendingIntent pi = createPendingIntent(ctx);        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000, pi);

CreatePendingIntent方法

private static PendingIntent createPendingIntent(Context context)     {        Intent myIntent = new Intent(context, MyAlarmService.class);        return PendingIntent.getService(context,0, myIntent, 0);     }

解决方法:

将警报设置为过去时间后,警报会立即d出.
只需检查当前时间是否大于闹钟时间.如果是这样,请在闹钟时间内添加24小时并设置警报:

long timetoAlarm = calendar.getTimeInMillis();if (calendar.getTimeInMillis() < System.currentTimeMillis()){    timetoAlarm += (24*60*60*1000);}alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, timetoAlarm, 24*60*60*1000, pi);
总结

以上是内存溢出为你收集整理的android – 重复警报调用甚至时间过去了全部内容,希望文章能够帮你解决android – 重复警报调用甚至时间过去了所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1109573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存