Почему сигнал тревоги продолжает срабатывать сразу после установки двух сигналов
У меня в приложении есть две повторяющиеся тревоги, каждая с разным временем и уведомлениями. Эти тревоги вызываются, когда пользователь регистрирует игровую карту.
Когда игровая карта зарегистрирована, эти две тревоги должны уведомлять пользователя каждый день.
1.) 14:30 - время превышения
2.) 15:30 - время возвращаться
Теперь проблема заключается в том, что каждый раз, когда я устанавливаю два будильника, они продолжают срабатывать сразу, но когда я просто устанавливаю один будильник, он работает просто отлично.
Коды для будильника
public void setAlarmRepeating()
{
player_database = new player_database(MainActivity.this);
Db_retrieve db = new Db_retrieve(MainActivity.this);
db.openDB();
c = player_database.queryData("select * from player_ID ORDER BY ID DESC");
try {
if (c != null && c.moveToNext()) {
Calendar calendar1=Calendar.getInstance();
calendar1.set(Calendar.HOUR_OF_DAY,14);
calendar1.set(Calendar.MINUTE,30);
calendar1.set(Calendar.MILLISECOND,0);
Intent intent=new Intent(MainActivity.this,Dog_alarm.class);
PendingIntent dog1=PendingIntent.getBroadcast(this,1,intent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarm1=(AlarmManager)getSystemService(ALARM_SERVICE);
alarm1.setInexactRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),calendar1.getTimeInMillis(),dog1);
Calendar calendar2=Calendar.getInstance();
calendar2.set(Calendar.HOUR_OF_DAY,15;
calendar2.set(Calendar.MINUTE,30);
calendar2.set(Calendar.MILLISECOND,0);
Intent intent1=new Intent(MainActivity.this,Dog_alarm.class);
PendingIntent dog2=PendingIntent.getBroadcast(this,2,intent1,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarm2=(AlarmManager)getSystemService(ALARM_SERVICE);
alarm2.setInexactRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),calendar2.getTimeInMillis(),dog2);
}
else
{
Toast.makeText(MainActivity.this,"No pets registered",Toast.LENGTH_SHORT).show();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
Затем на моем BroadcastReceiver я сделал это
public void onReceive(Context context, Intent intent) {
NotificationManager notificationManager1=(NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
Intent dog_intent1=new Intent(context,HomeActivity.class);
PendingIntent dog_pending1=PendingIntent.getActivity(context, 1,dog_intent1, PendingIntent.FLAG_UPDATE_CURRENT);
Uri uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder1=new NotificationCompat.Builder(context)
.setContentIntent(dog_pending1)
.setSmallIcon(R.drawable.ic_action_prof_breed_icon)
.setSound(uri)
.setContentTitle("Pentra")
.setContentText("Time to exceed")
.setAutoCancel(true);
notificationManager1.notify(1,builder1.build());
NotificationManager notificationManager2=(NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
Intent dog_intent2=new Intent(context,HomeActivity.class);
PendingIntent dog_pending2=PendingIntent.getActivity(context, 2,dog_intent2, PendingIntent.FLAG_UPDATE_CURRENT);
Uri uri1= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder2=new NotificationCompat.Builder(context)
.setContentIntent(dog_pending2)
.setSmallIcon(R.drawable.ic_action_prof_breed_icon)
.setSound(uri1)
.setContentTitle("Pentra")
.setContentText("Time to go back?")
.setAutoCancel(true);
notificationManager2.notify(2,builder2.build());
}
если вы можете найти это, пожалуйста, скажите мне, что я делаю неправильно, размышлял об этом в течение 1 дня и до сих пор не знаю, что случилось.
Редактировать:
Я пытался добавить это, чтобы проверить, прошел ли день или нет
if(calendar1.before(Calendar.getInstance())) {
calendar1.add(Calendar.DATE, 1);
}
но все равно сигнал тревоги продолжает срабатывать