Android Java:根据应用程序中已指定的日期条件自动发送通知

2020年2月25日 47点热度 0条评论

我正在构建一个植物护理android应用程序。该应用程序将灌溉日期存储在数据库中。
我正在从数据库中检索该日期,并且我需要该应用程序在上次灌溉日期过后自动发送灌溉提醒通知。如何在用Java编写的Android应用程序中做到这一点?

我尝试了这个颂歌,但它要求用户手动指定日期。 https://www.tutorialspoint.com/how-to-set-an-android-notification-to-a-specific-date-in-the-future

解决方案如下:

我认为JobScheduler可以满足您的需求。

每小时1条通知的示例

val jobScheduler = getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler

        jobScheduler.schedule(
            JobInfo
                .Builder(1, ComponentName(this, JobServiceImpl::class.java))
                .setMinimumLatency(TimeUnit.HOURS.toMillis(1))
                .setBackoffCriteria(TimeUnit.HOURS.toMillis(1), JobInfo.BACKOFF_POLICY_LINEAR)
                .build()
        )

JobServiceImpl类

class JobServiceImpl : JobService() {
    override fun onStopJob(params: JobParameters?): Boolean {
        return true
    }

override fun onStartJob(params: JobParameters?): Boolean {
    val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    manager.notify(....your notification)

    return true
}

}

不要忘记添加此

<service
            android:name=".JobServiceImpl"
            android:permission="android.permission.BIND_JOB_SERVICE" />

到你的清单。

有关作业计划程序的详细信息,请参见
here