警报在特定日期重复,而不是每天都重复例如(星期日、星期二、星期五)



我厌倦了寻找关于闹钟的特定日期,每天都在请求谁能帮我并使用这些代码对此有什么错误,每隔一次运行我发送dayOfWeek=1;但每天运行

 public void setAlarm(int dayOfWeek) {
     Toast.makeText(getApplicationContext(), dayOfWeek+","+h+","+m, 22222).show();
     cal1.set(Calendar.DAY_OF_WEEK, dayOfWeek);
     cal1.set(Calendar.HOUR, 11);
        cal1.set(Calendar.MINUTE, 0);
        cal1.set(Calendar.SECOND, 0);
        cal1.set(Calendar.MILLISECOND, 0);
        Intent intent = new Intent(this, RemmemberActivity.class);
        PendingIntent pendingIntent0 = PendingIntent.getBroadcast(this, 0,
                intent, 0);
        pendingIntent    = PendingIntent.getActivity(this, 12345,
                intent, PendingIntent.FLAG_UPDATE_CURRENT);
            Long alarmTime = cal1.getTimeInMillis();
            am   = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);
        am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime,24 * 60 * 60 * 1000 , pendingIntent); 
}

在我快速查看后,您将警报设置为每24小时在这一行重复一次:

am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime,24 * 60 * 60 * 1000 , pendingIntent);

您的dayOfWeek仅用于第一次熄灭的时间。

如果你有一个闹钟应该每周在同一时间响三次,那么就制作三个每周重复一次的闹钟。

am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime, 7 * 24 * 60 * 60 * 1000 , pendingIntent);

最后,如果设置为(sun,tus,fri),则必须为这三天创建三个警报以下代码设置每周日报警,并发送dayOfWeek=1;重要注意:每次创建运行都必须更改每个intnet中的请求代码(12345)例如

 public void setAlarm_sun(int dayOfWeek) {
     cal1.set(Calendar.DAY_OF_WEEK, dayOfWeek);
     Toast.makeText(getApplicationContext(), "sun "+cal1.get(Calendar.DAY_OF_WEEK), 222).show();
     Toast.makeText(getApplicationContext(), "Finsh", 222).show();
        Intent intent = new Intent(this, SecActivity.class);
        PendingIntent pendingIntent0 = PendingIntent.getBroadcast(this, 0,
                intent, 0);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 12345,
                intent, PendingIntent.FLAG_UPDATE_CURRENT);
         Long alarmTime = cal1.getTimeInMillis();
         AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);
       // am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime,7* 24 * 60 * 60 * 1000 , pendingIntent);
        am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime,7* 24 * 60 * 60 * 1000 , pendingIntent);
} 

相关内容

最新更新