android - 即使时间过去了,也会重复调用警报

标签 android alarm

我创建了警报演示。在那个演示中,我重复了一个警报。我的演示中有一个问题。即使时间过去了,我的闹钟还是叫服务。我设置了 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); 

    }

最佳答案

将闹钟设置为过去时间时,闹钟会立即弹出。 只需检查当前时间是否大于闹钟时间。如果是,请将闹钟时间增加 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 - 即使时间过去了,也会重复调用警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7401063/

相关文章:

android - 没有互联网的本地网络多人游戏

android - AfterTextChanged 甚至在删除监听器后调用

android - 如何设置闹钟在固定时间正确触发?

android - android 开发者可以访问系统时钟/闹钟应用程序吗?

c# - Windows Phone 7 闹钟没有在预定时间响起

android - 如何处理android中每天触发的警报

android - 铃声音量静音时使用警报流的声音通知 (Android Oreo)

android - 在 ListView Android 中隐藏和显示 View

android - 在Android中绘制图表线

android - Actionbarsherlock IcsSpinner - 宽度始终设置为最宽的项目