android - 我的应用重启后房间数据丢失

标签 android android-room

我在我的应用程序中有一个简单的 Room 实现。它有两个实体。 应用程序运行时它工作正常。但是一旦应用程序重新启动,我就看不到任何数据。

这是我的数据库创建代码-

@Database(entities = {Person.class, College.class}, version = 1,  exportSchema = true)
public abstract class AppDatabase extends RoomDatabase {
    private static AppdDatabase INSTANCE;
    public abstract PersonDao personDao();
    public abstract CollegeDao collgeDao();

    public static AppDatabase getInstance(Context context) {
        if (INSTANCE == null) {
            INSTANCE = Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "my-sample-app.db")
                    .build();
        }
        return INSTANCE;
    }

    public static void destroyInstance() {
        if (INSTANCE != null) INSTANCE.close();
        INSTANCE = null;
    }
}

在任何正在运行的 session 中,我都可以添加和查看数据,但在应用重启后没有任何可用信息。我在这里缺少什么?

谢谢

最佳答案

每次重新启动应用程序时都会有一个空数据库的原因是因为在数据库类中您使用了“Room.inMemoryDatabaseBuilder..”,它仅用于在数据库上进行测试,因此您应该使用“Room.inMemoryDatabaseBuilder..”数据库生成器..”

关于android - 我的应用重启后房间数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49317198/

相关文章:

Android Room 持久性库。在迁移中更改数据库 View

android - 请求增量注释处理

android - 在没有 ViewModel 的情况下使用 Room

android - 将回收器 View 数据中的 onMove() 更改更新到房间数据库

Android 定时通知

java - LibGDX 中带有表格布局的菜单不会加载

android - GCM 服务对于大规模推送通知是否可靠?

Android:如何在关闭时控制电子墨水屏

android - 从 google play 下载应用程序时找不到您尝试购买的商品

android - 更新android Room中实体的某些特定字段