android房间ORM后有初始值

时间:2017-07-10 22:48:50

标签: android sqlite android-room

在Android ORM中如何在SQLite中的表中添加一些初始值我通常在SQLite的onCreate中执行此操作。 但在房间里我怎么能这样做意味着在数据库上创建后添加了一些初始值。 谢谢你的回答。

1 个答案:

答案 0 :(得分:1)

您可以使用最新版本的Room库中提供的RoomDatabase.Callback。

您需要实现RoomDatabase.Callback的onCreate和onOpen方法,并将其添加到RoomDatabase.Builder,如下所示。

<强> RoomDatabase.Callback

  RoomDatabase.Callback rdc = new RoomDatabase.Callback(){
        public void onCreate (SupportSQLiteDatabase db){
        // do something after database has been created
        }
        public void onOpen (SupportSQLiteDatabase db){
        //do something every time database is open
        }
    };

将回调添加到会议室数据库构建器

 yourDatabase = Room.databaseBuilder(context,
                            YourDatabase.class, "your db").addCallback(rdc).build();

参考:https://medium.com/@srinuraop/database-create-and-open-callbacks-in-room-7ca98c3286ab