From cb99bd7dad1b305a434c5c6c99ca65e782eb0f34 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 11 四月 2025 17:32:12 +0800 Subject: [PATCH] add: 消息提醒 --- app/src/main/java/com/example/firstapp/App.kt | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/App.kt b/app/src/main/java/com/example/firstapp/App.kt index 83a1eae..a3992f7 100644 --- a/app/src/main/java/com/example/firstapp/App.kt +++ b/app/src/main/java/com/example/firstapp/App.kt @@ -37,6 +37,7 @@ import java.io.IOException import java.text.SimpleDateFormat import java.util.* +import java.util.concurrent.TimeUnit @Suppress("DEPRECATION") class App : Application(), CactusCallback, Configuration.Provider { @@ -455,6 +456,7 @@ private fun setupReminderWorker() { Log.d(TAG, "设置定时提醒Worker") + // 方式1:使用周期性执行 val constraints = Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .build() @@ -474,6 +476,18 @@ ExistingPeriodicWorkPolicy.REPLACE, reminderWorkRequest ) + + // 方式2:设置在特定时间执行(例如每天上午9点和下午18点) + // 可根据需要设置多个不同时间点的提醒 + ReminderWorker.setupScheduledWorker(this, 9, 0) // 上午9:00 + ReminderWorker.setupScheduledWorker(this, 13, 50) // 下午18:00 + + // 注意:不再立即执行一次提醒检查,避免重复提醒 + // 如果需要立即检查,可以设置一个延迟,例如5分钟后执行 + val delayedWorkRequest = OneTimeWorkRequestBuilder<ReminderWorker>() + .setInitialDelay(5, TimeUnit.MINUTES) // 延迟5分钟执行 + .build() + WorkManager.getInstance(this).enqueue(delayedWorkRequest) } } \ No newline at end of file -- Gitblit v1.9.3