[英]Android | Repeating alarm clock
I have an alarm clock app.我有一个闹钟应用程序。 I made it using the AlarmManager class. But I made only a single alarm, and I need an alarm that will be repeated every day and on the days of the week.我使用 AlarmManager class 制作了它。但我只制作了一个闹钟,我需要一个每天和一周中的几天重复的闹钟。
I want: 1. An every day alarm clock 2. An alarm clock that works on selected days of week.我想要: 1. 一个每天闹钟 2. 一个在一周中选定的几天工作的闹钟。
It is my code from a single alarm (The code works good):这是我的单个警报代码(该代码运行良好):
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MINUTE, timePicker.getMinute());
calendar.set(Calendar.HOUR_OF_DAY, timePicker.getHour());
long startUpTime = calendar.getTimeInMillis();
if (System.currentTimeInMillis() > startUpTime) {
startUpTime = startUpTime + AlarmManager.INTERVAL_DAY;
AlarmManager.AlarmClockInfo alarmClockInfo =
new AlarmManager.AlarmClockInfo(startUpTime, getClockInfo());
alarmManager.setAlarmClock(alarmClockInfo, pendingIntent);
} else {
AlarmManager.AlarmClockInfo alarmClockInfo =
new AlarmManager.AlarmClockInfo(alarm.timeInMillis, getClockInfo());
alarmManager.setAlarmClock(alarmClockInfo, pendingIntent);
}
My code from every day alarm (The code does not work exactly, when I set alarm at 6:40 it works at 7:00):我每天闹钟的代码(代码不能正常工作,当我在 6:40 设置闹钟时,它在 7:00 工作):
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MINUTE, timePicker.getMinute());
calendar.set(Calendar.HOUR_OF_DAY, timePicker.getHour());
long startUpTime = calendar.getTimeInMillis();
if (System.currentTimeInMillis() > startUpTime) {
startUpTime = startUpTime + AlarmManager.INTERVAL_DAY;
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
startUpTime,
AlarmManager.INTERVAL_DAY,
pendingIntent);
} else {
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
startUpTime,
AlarmManager.INTERVAL_DAY,
pendingIntent);
}
have a look here may can help you it works perfect in my app.看看这里可能会帮助你它在我的应用程序中完美运行。 I have done with kotlin you there t=are some syntax difference but logics are same.我已经完成了 kotlin 你那里 t=有一些语法差异但逻辑是相同的。
private fun setAlarm1() {
var calender: Calendar
calender = Calendar.getInstance()
calender.set(Calendar.HOUR_OF_DAY, PUT_YOUR_ALARM HOUR)
calender.set(Calendar.MINUTE, PUT_YOUR_ALARM MINUTE)
calender.set(Calendar.SECOND, 0)
alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
val thuReq: Long = Calendar.getInstance().timeInMillis + 1
var reqReqCode = thuReq.toInt()
if (calender.timeInMillis < System.currentTimeMillis()) {
calender.add(Calendar.DAY_OF_YEAR, 1)
}
val alarmTimeMilsec = calender.timeInMillis
val intent = Intent(this, AlarmReceiver::class.java)
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
val pendingIntent = PendingIntent.getBroadcast(this, reqReqCode, intent, 0)
alarmManager.setRepeating(
AlarmManager.RTC_WAKEUP,
calender.timeInMillis,
24 * 60 * 60 * 1000,// or AlarmManager.INTERVAL_DAY
pendingIntent
)
for more help go to this link https://github.com/Niajnm/Android-RandomUser-Alarm-Trigger/blob/master/app/src/main/java/com/example/randomuser/AlarmClock/AlarmCreateActivity.kt I made a app multi functional medicine alarm clock.如需更多帮助 go 此链接https://github.com/Niajnm/Android-RandomUser-Alarm-Trigger/blob/master/app/src/main/java/com/example/randomuser/AlarmClock/AlarmCreateActivity.kt我做了一个应用程序多功能医学闹钟。 it may help you它可能对你有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.