Comment utiliser la Salle de Persistance de la Bibliothèque de pré-base de données de population?

Je voudrais utiliser la Salle avec une base de données pré renseignée, mais je ne peux pas comprendre comment le dire à la Chambre où trouver ma base de données.

J'ai maintenant le mettre dans src/main/assets/databases et quand je créer l'instance de la base de données de chambres-je créer de cette façon:

Room.databaseBuilder(
    getApplicationContext(),
    AppDatabase.class,
    "justintrain.db"
)
.allowMainThreadQueries()
.build();

De cette façon tho, je pense que c'est la création d'une nouvelle base de données à chaque fois, ou de toute façon, ce n'est pas à l'aide de la pré-peuplée.

Comment puis-je faire pour trouver ma base de données?

  • Je n'ai pas vu une bonne solution pour ce. J'ai déposé une demande de fonctionnalité pour elle.
  • donc ça va prendre un certain temps jusqu'à ce qu'il sera mis en œuvre, je suppose.. connaissez-vous une solution de contournement qui pourraient être utilisées jusqu'alors? (Merci beaucoup en tout cas pour le signaler!)
  • Ainsi, on pourrait supposer que la base de données est stockée dans getDatabasePath() pour votre base de données nom de fichier. Alors, arrangez-vous pour copier l'élément dans cette voie avant de créer le RoomDatabase, si ce fichier n'existe pas déjà. C'est la première option que je propose dans cette question, où, idéalement, nous avons davantage de garanties que "getDatabasePath() pour votre base de données nom de fichier" est la bonne réponse.
  • cela fonctionne pour vous medium.com/google-developers/... ?
  • avez-vous essayé de passer le chemin complet de la base de données dans le constructeur? cette habitude de travailler avec SqliteOpenHelper
  • CommonsWare a une bonne solution ici: github.com/commonsguy/cw-androidarch/tree/v0.6/General/...