Android Java: автоматически отправлять уведомление на основании даты, уже указанной в приложении. - PullRequest
0 голосов
/ 08 марта 2020

Я создаю приложение по уходу за растениями android. Приложение сохраняет дату полива в базе данных. Я извлекаю эту дату из базы данных, и мне нужно, чтобы приложение автоматически отправляло уведомление с напоминанием об орошении по истечении периода с последней даты полива. Как это сделать в приложении Android, написанном Java?

Я опробовал эту оду, но он потребовал, чтобы пользователь указал дату вручную. https://www.tutorialspoint.com/how-to-set-an-android-notification-to-a-specific-date-in-the-future

1 Ответ

0 голосов
/ 08 марта 2020

Я думаю, что 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

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" />

в манифест. Подробности о планировщике работы можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...