Android: Workmanager getWorkInfoByTagLiveData, преобразовать getWorkInfosByTagLiveData в отдельные живые данные

#android #kotlin #android-livedata #kotlin-coroutines #android-workmanager

#Android #котлин #android-живые данные #kotlin-сопрограммы #android-workmanager

Вопрос:

При работе с Workmanager , я столкнулся с проблемой, что я хотел, чтобы получить single LiveData Object с ассоциированным tag . Моя проблема заключалась в том, что Workmanager только при условии getWorkInfosByTagLiveData .

Есть ли способ получить один объект LiveData с соответствующим тегом?

Ответ №1:

Итак, вот простое решение:

Получить единую рабочую информацию в виде потока (для наблюдателя из ViewModel)

 val singleWorkInfoAsFlow: Flow<WorkInfo> =
    WorkManager.getInstance(context).getWorkInfosByTagLiveData("TAG").asFlow().map { it[0] }
  

Получить единую рабочую информацию как живые данные (для наблюдения из представления)

 val singleWorkInfoAsLiveData: LiveData<WorkInfo> =
    WorkManager.getInstance(context).getWorkInfosByTagLiveData("TAG").map { it[0] }
  

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

Приветствия