只要应用程序打开,AlarmManager 就会关闭
AlarmManager going off whenever app opens
我正在尝试将 AlarmManager 设置为在白天的特定时间关闭。这是我目前的代码 -
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 16);
calendar.set(Calendar.SECOND, 0);
long time = calendar.getTimeInMillis();
Intent intent = new Intent(MainActivity.this, Drawing.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
MainActivity.this, 0, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, time,
AlarmManager.INTERVAL_DAY, pendingIntent);
绘图 class 显示通知。闹钟确实会在正确的时间响起,但只要重新打开应用程序,通知就会立即响起。
我知道这与绘图无关 class 因为当我将闹钟设置为仅在 System.currentTimeInMillis() + 10 秒后响起时它工作正常,即使应用程序重新打开也是如此。
有什么想法吗?我的逻辑有什么问题?
您没有检查 calendar
是否在过去,因为它将是 ~2/3 的时间(即,此代码在 [=14 之后的任何时间 运行 =]).在这种情况下,您将需要 add()
一天,才能获得明天的 8:16。
我正在尝试将 AlarmManager 设置为在白天的特定时间关闭。这是我目前的代码 -
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 16);
calendar.set(Calendar.SECOND, 0);
long time = calendar.getTimeInMillis();
Intent intent = new Intent(MainActivity.this, Drawing.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
MainActivity.this, 0, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, time,
AlarmManager.INTERVAL_DAY, pendingIntent);
绘图 class 显示通知。闹钟确实会在正确的时间响起,但只要重新打开应用程序,通知就会立即响起。
我知道这与绘图无关 class 因为当我将闹钟设置为仅在 System.currentTimeInMillis() + 10 秒后响起时它工作正常,即使应用程序重新打开也是如此。
有什么想法吗?我的逻辑有什么问题?
您没有检查 calendar
是否在过去,因为它将是 ~2/3 的时间(即,此代码在 [=14 之后的任何时间 运行 =]).在这种情况下,您将需要 add()
一天,才能获得明天的 8:16。