1
zhujie
2025-04-15 879ec1ae04b37eb7bf9357903d10acc860d84d5b
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)
    }
}