Как отправить несколько аргументов в качестве входных данных для WorkManager? или как создать конструктор? или как передать объект в качестве ввода? - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно передать несколько аргументов в качестве входных данных для моего WorkManager, но я не знаю как. Также я хочу сдать репозиторий.

    val data = workDataOf("cabinId" to task.cabinId)
     val data2 = workDataOf("repository" to repository)
     val uploadWorkRequest = OneTimeWorkRequestBuilder<WManager>()
         .setInputData(data)
         .setInputData(data2)
         .build()


class WManager(appContext: Context, workerParams: WorkerParameters) : Worker(appContext, workerParams) {
override fun doWork(): Result {
    val input = inputData.getInt("cabinId", 99)
    val input2 = inputData("repository")
    return Result.success(outputData)
}}

Я пытался реализовать сериализуемый интерфейс для репозитория, но он не работает

1 Ответ

1 голос
/ 26 апреля 2019

Вы делаете правильные вещи.Вы можете передать несколько пар ключ-значение в workDataOf.

Так что-то вроде:

val data = workDataOf("cabinId" to task.cabinId, "repository" to repository)
val request = OneTimeWorkRequestBuilder<WManager>()
    .setInputData(data)
    .build()

WorkManager.getContext(context).enqueue(request)

Это предполагает, что repository является сериализуемым типом.Если нет, вам нужно будет выполнить внедрение зависимостей.

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