Сопрограммы с LiveData - PullRequest
0 голосов
/ 13 мая 2019

Получите ошибку компиляции при попытке запустить приведенный ниже код:

Код успешно запускается, если я изменил тип возвращаемого значения на List, но я хотел вернуть объект живых данных из приостановленной функции.

@Dao
interface TodoDao {
    @Query("SELECT * from Todo where category_name = :category_name")
    suspend fun getAllTodo(category_name : String) :LiveData<List<Todo>>
}
Compiler throws error: Not sure how to convert a Cursor to this method's return type (LiveData<List<Todo>>).
public abstract java.lang.Object getAllTodo(@org.jetbrains.annotations.NotNull()

    def room_version = '2.1.0-beta01'

    //Room
    implementation "androidx.room:room-ktx:$room_version"
    implementation "androidx.room:room-runtime:$room_version"
    kapt "androidx.room:room-compiler:$room_version"

    //View model
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0-beta01'
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0-beta01"

    api "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.2.1"

Любая помощь будет оценена.Спасибо

1 Ответ

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

Вы не можете использовать suspend в комнате. Вы можете удалить его или использовать со списком <>, а затем в ViewModel добавить его в MutableLiveData. Вы можете сделать это, вызвав метод post в CoroutineScope.

...