安排通知?

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 来安排任务。

这是一个简单的实现

http://thetechnocafe.com/how-to-use-workmanager-in-android/

我有一个应用程序检查是否每 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 组合是最理想的。但这应该可以帮助您入门。