La page ici indique que les coroutines prennent désormais en charge room et ils ont donné la dépendance comme
implementation "androidx.room:room-coroutines:$room_version"
Mais je ne trouve aucune documentation ou exemple de code sur la façon de l'utiliser. Des prospects ici?
3 Réponses :
il n'y a pas de documentation directe pour cette partie. J'ai utilisé cette fonctionnalité sur un projet en cours, cela ressemble presque à l'utilisation de l'orignal coroutin Jetez un œil à ceci codeLab et aussi cet article
Notez que l ' article concerne une API coroutines plus ancienne. Je suggère d'attendre une meilleure ressource.
Je suis d'accord avec vous, cet article concerne les coroutines plus anciennes mais il est utile de construire les choses progressivement en appliquant la partie disponible maintenant puis en la refactorisant pour de meilleures performances et améliorations @ Alex.F
Ajoutez simplement le modificateur suspend
à votre DAO comme ceci:
uiScope.launch { val words = WordRoomDatabase.INSTANCE.wordDao().getAllWords() //Print all the words words.forEach { Log.v(TAG, it) } }
L'exemple d'utilisation peut être:
@Dao interface WordDao { @Query("SELECT * from word_table ORDER BY word ASC") suspend fun getAllWords(): List<Word> @Insert suspend fun insert(word: Word) @Query("DELETE FROM word_table") suspend fun deleteAll() }
Exemples adaptés du Room codelab
Pour l'instant, cet article semble être la chose la plus proche d'un guide "officiel" sur ce sujet:
Salle 🔗 Coroutines par Florina Muntenescu .
J'ai également utilisé room-coroutines
dans ceci projet, mais je ne peux pas garantir que l'utilisation est correcte à 100%.