首页 > 解决方案 > 每次我杀死应用程序时,我的数据库中的数据都会被删除?

问题描述

在我的 android 应用程序中,我使用 Room Database 库将数据存储在数据库中。我可以在单个会话中存储和获取数据。这没有问题。问题是当我关闭应用程序并再次打开时,我没有获取存储在本地数据库中的数据。这些数据被删除。

我在谷歌搜索过,其中一些人说使用 databaseBuilder 创建房间数据数据库实例。但我只使用它。但我收到了这个错误。

这是我的实例初始化。

这是我的 AppDtabase 类;

@Database(entities = {SelectedBuilding.class}, exportSchema =true,  version=2)
public abstract class AppDatabase extends RoomDatabase {
    private static AppDatabase INSTANCE;

    public abstract SelectedBuildingDao myDao();

    public static AppDatabase getAppDatabase(Context context){
        if (INSTANCE==null){
            INSTANCE= Room.databaseBuilder(context.getApplicationContext(),AppDatabase.class,"Selected_buildings")
                    .addMigrations(MIGRATION_1_2)
                    .build();
        }
        return INSTANCE;
    }

    public static void destroyInstance(){
        INSTANCE=null;
    }

    static final Migration MIGRATION_1_2 = new Migration(1, 2) {
        @Override
        public void migrate(SupportSQLiteDatabase database) {
            database.execSQL("ALTER TABLE selected_building ADD COLUMN Building_Id TEXT");
        }
    };



}

 INSTANCE= Room.databaseBuilder(context.getApplicationContext(),AppDatabase.class,"Selected_area").build();

谁能帮我解决这个问题?提前致谢。

标签: androiddatabaseandroid-sqliteandroid-roomlocal-database

解决方案


推荐阅读