首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何重新填充我的Android Room数据库?

如何重新填充我的Android Room数据库?
EN

Stack Overflow用户
提问于 2018-06-20 06:53:53
回答 1查看 230关注 0票数 0

下面是我的AppDatabase代码。一开始我只将ChatUserChatMessage作为实体,这两个实体工作得很好,但后来我想添加Wells,我把它们都整理好并添加到这个类中,以及预初始化数据库的回调中的2行代码。问题是这是行不通的。即使我更改版本号或卸载应用程序,数据库也不会预初始化。这是它工作时的第一个版本,所以我还没能在数据库上成功迭代。请帮帮我!

代码语言:javascript
运行
复制
@Database(entities = {ChatUser.class, ChatMessage.class, Well.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {

    private static AppDatabase INSTANCE;

    public abstract UserDao userDao();

    public abstract MessageDao messageDao();

    public abstract WellDao wellDao();

    public static AppDatabase getAppDatabase(final Context context) {
        Log.d("AppDatabase", "getting app database");
        if (INSTANCE == null) {
            INSTANCE =
                    Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "curadite-database")
                            .fallbackToDestructiveMigration()
                            .addCallback(new Callback() {
                                @Override
                                public void onCreate(@NonNull SupportSQLiteDatabase db) {
                                    super.onCreate(db);
                                    Log.d("AppDatabase", "OnCreate");
                                    Executors.newSingleThreadExecutor().execute(new Runnable() {
                                        @Override
                                        public void run() {
                                            ChatUser user = new ChatUser("Me", true);
                                            ChatMessage message = new ChatMessage("Hello!", 1, System.currentTimeMillis());
                                            AppDatabase db = getAppDatabase(context);
                                            db.userDao().insertAll(user);
                                            db.messageDao().insertAll(message);
                                            Well[] wells = new Curapac(7, 2).flatWells();
                                            db.wellDao().insertAll(wells);
                                        }
                                    });
                                }
                            })
                            .build();
        }
        return INSTANCE;
    }
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50937986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档