代码之家  ›  专栏  ›  技术社区  ›  Santhosh Kumar

当应用程序在Android 15 Pixel 9中重新启动时,Room DB被破坏

  •  0
  • Santhosh Kumar  · 技术社区  · 5 月前

    我面临一个问题,当我的应用程序在Android 15(Pixel 9)设备上重新启动时,房间数据库会被破坏。在应用程序关闭并重新打开后,数据库不会持久,我会丢失所有存储的数据。

        @Provides
        @Singleton
        fun provideDatabase(@ApplicationContext context: Context): AppDatabase {
            return Room.databaseBuilder(
                context.applicationContext,
                AppDatabase::class.java,
                "app_database"
            ).createFromAsset("database/external_database.db")
                .enableMultiInstanceInvalidation()
                .fallbackToDestructiveMigration()
                .build()
        }
    
    

    仅当我预填充database.createFromAsset(“database/external_tabase.db”)时才会发生这种情况。

    1 回复  |  直到 5 月前
        1
  •  1
  •   Sasi Kumar    5 月前

    建议值为true,否则当表名或版本之间的存在发生变化时,Room可能会留下过时的数据。

    fallbackToDestructiveMigration(boolean dropAllTables)
    

    请参阅更多详细信息 fallbackToDestructiveMigrationFrom