android room ORM after 有初始值

android room ORM after have initial values

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

您可以使用最新版本的 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