본문 바로가기

Android

Pre-populate a Room database

현재는 이 방식으로는 onCreate callback 이 호출되지 않음
https://gist.github.com/florina-muntenescu/697e543652b03d3d2a06703f5d6b44b5

찾아보니 아래와 같은 글이 있어서 결론적으로 한번 호출해주기로 하고
https://stackoverflow.com/questions/47619718/room-database-not-created

아래와 같은 코드 형태로 구현

mDb = Room.databaseBuilder(MainApp.context, NvAppRoom.class, "nvapp.rxdb")
            .addCallback(new RoomDatabase.Callback() {
                @Override
                public void onCreate(@NonNull SupportSQLiteDatabase db) {
                    super.onCreate(db);

                    if (mLog.isDebugEnabled()) {
                        mLog.debug("ROOM CREATE");
                    }

                    mDisposable.add(rxdb().subscribe(nvAppRoom ->
                            nvAppRoom.navigation().prePopulate(populateNavigationData()) ));
                }
            })
            .build();

mDisposable.add(rxdb().subscribe(db -> db.navigation().count()));

'Android' 카테고리의 다른 글

Executor.execute ()와 ExecutorService.submit () 메서드 비교  (0) 2018.08.08
google i/o extended incheon 후기  (0) 2018.07.12
splash cold start up  (0) 2018.07.12
builder (빌더) 패턴  (0) 2018.07.04
kotlin + livedata 그리고 SAM  (0) 2018.06.27