安排通知?
Scheduling a notification?
有没有办法安排通知在特定时间出现?
我正在开发一款提醒用户每 6/12 小时更换一次绷带的应用程序,我希望在用户确认已使用绷带后 6/12 小时向用户发送通知。
有什么办法吗?我已尝试实施 alarmManager Class 但是我发现的每个示例都使用一天中的特定时间,而不是事件发生后的 6/12 小时。
使用 WorkManager 安排任务
https://developer.android.com/topic/libraries/architecture/workmanager/
以前 firebase-jobdispatcher-android 现在工作正常 google 引入了新的 WorkManager 来安排任务。
这是一个简单的实现
我有一个应用程序检查是否每 24 小时显示一次通知。您可以将其更改为您想要的任何时间间隔。
with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
// Create a PendingIntent which AlarmManager would raise.
// You should have a BroadcastReceiver to receive the intent and send a push notification.
setInexactRepeating(
AlarmManager.RTC_WAKEUP,
startAt.toEpochSecond() * 1000,
intervalInMillis,
pendingIntent
)
}
startAt
-> 您的闹钟应该开始工作的时间(最好是在将来)。如果这是过去,它会立即广播意图。
intervalInMillis
-> 以毫秒为单位的时间间隔。对于您的情况,这应该是 6 小时。
如果你的应用在 6 小时和 12 小时需要不同的警报(通知),我仍然会以 6 小时甚至 3 小时为间隔。收到广播后,您应该检查应用程序是否应该发送通知。如果没有,请不要做任何事情。
详细了解 Scheduling repeating alarms。
注意:AlarmManager
受打瞌睡模式影响,您需要在 phone 重新启动后重置所有闹钟。用 WorkManager
组合是最理想的。但这应该可以帮助您入门。
有没有办法安排通知在特定时间出现?
我正在开发一款提醒用户每 6/12 小时更换一次绷带的应用程序,我希望在用户确认已使用绷带后 6/12 小时向用户发送通知。
有什么办法吗?我已尝试实施 alarmManager Class 但是我发现的每个示例都使用一天中的特定时间,而不是事件发生后的 6/12 小时。
使用 WorkManager 安排任务
https://developer.android.com/topic/libraries/architecture/workmanager/
以前 firebase-jobdispatcher-android 现在工作正常 google 引入了新的 WorkManager 来安排任务。
这是一个简单的实现
我有一个应用程序检查是否每 24 小时显示一次通知。您可以将其更改为您想要的任何时间间隔。
with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
// Create a PendingIntent which AlarmManager would raise.
// You should have a BroadcastReceiver to receive the intent and send a push notification.
setInexactRepeating(
AlarmManager.RTC_WAKEUP,
startAt.toEpochSecond() * 1000,
intervalInMillis,
pendingIntent
)
}
startAt
-> 您的闹钟应该开始工作的时间(最好是在将来)。如果这是过去,它会立即广播意图。
intervalInMillis
-> 以毫秒为单位的时间间隔。对于您的情况,这应该是 6 小时。
如果你的应用在 6 小时和 12 小时需要不同的警报(通知),我仍然会以 6 小时甚至 3 小时为间隔。收到广播后,您应该检查应用程序是否应该发送通知。如果没有,请不要做任何事情。
详细了解 Scheduling repeating alarms。
注意:AlarmManager
受打瞌睡模式影响,您需要在 phone 重新启动后重置所有闹钟。用 WorkManager
组合是最理想的。但这应该可以帮助您入门。