计划通知



有没有办法安排通知在特定时间出现?

我正在开发一个应用程序,提醒用户每 6/12 小时更换一次绷带,我希望在用户确认已使用绷带后 6/12 小时向用户发送通知。

有什么办法可以做到这一点吗?我尝试实现 alarmManager 类,但是我找到的每个示例都使用一天中的特定时间,而不是事件发生后的 6/12 小时。

我有一个应用程序,可以检查是否每 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 -> Epoch,您的闹钟何时开始工作(最好在将来(。如果这是过去,它将立即使意图变得无聊。

intervalInMillis -> 间隔(以毫秒为单位(。对于您的情况,这应该是 6 小时。

如果您的应用程序在 6 小时和 12 小时需要不同的警报(通知(,我仍然会以 6 小时甚至 3 小时作为间隔。收到广播后,您应该检查应用程序是否应该发送通知。如果没有,请不要做任何事情。

阅读有关安排重复警报的更多信息。

注意:AlarmManager受打瞌睡模式的影响,您需要在手机重启后重置所有闹钟。与WorkManager一起泡吧将是理想的。但这应该让你开始。

使用 WorkManager
安排任务https://developer.android.com/topic/libraries/architecture/workmanager/

以前firebase-jobdispatcher-android工作正常,现在谷歌引入了新的WorkManager来调度任务。

这是一个简单的实现

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

最新更新