Диспетчер работ с периодическим запросом, вызываемым несколько раз - PullRequest
0 голосов
/ 18 сентября 2018

Я использую менеджер работ для периодического задания.Я должен выполнить один экземпляр работника

, мой код ниже

  val workManager = WorkManager.getInstance()
  val callDataRequest = PeriodicWorkRequest.Builder(MyLoggerWork::class.java,
                15, TimeUnit.MINUTES)
                .addTag(worker)
                .build()
   workManager.enqueueUniquePeriodicWork(worker, ExistingPeriodicWorkPolicy.KEEP, callDataRequest)

, и мой работник регистрируется следующим образом

18/09/2018 03:18:19
18/09/2018 03:18:19
18/09/2018 03:18:19
18/09/2018 03:18:19

18/09/2018 03:37:18
18/09/2018 03:37:18
18/09/2018 03:37:18
18/09/2018 03:37:18

, вот мой класс MyLoggerWork

public class MyLoggerWork: Worker(){


override fun doWork(): Result {
    addlog()
    return Worker.Result.SUCCESS
}

private fun addlog() {

    try {

        val directory = File(Environment.getExternalStorageDirectory().path + "/", "Jobs")
        if (!directory.exists()) {
            directory.mkdir()
        }
        val file = File(directory.path, "jobs_.txt")
        if (!file.exists() && directory.exists()) {
            file.createNewFile()
        }
        try {
            val text = SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format(Date())
            val stream = FileOutputStream(file, true)
            stream.write("\r\n".toByteArray())
            stream.write(text.toByteArray())
            stream.close()
        } catch (e: Exception) {
            e.printStackTrace()
        }

    } catch (e: IOException) {
        e.printStackTrace()
    }
}
}

я использую следующую зависимость

 implementation 'android.arch.work:work-runtime:1.0.0-alpha08'

почему моя работа вызывается 4 раза ???

1 Ответ

0 голосов
/ 26 мая 2019

Вы используете очень старую версию WorkManager. Вы должны перейти на последнюю стабильную версию. Вы можете попробовать использовать 1.0.1 или, что еще лучше, переключиться на 2.0.1, который включает androidx зависимости.

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