我总是被告知使用 Singleton 很糟糕。然而,Android Room 实现的每个示例似乎都使用 Singleton 方法。有人可以解释一下为什么会这样吗?
Thanks
有两种方法
1)你应该使用匕首2
2)抽象 RoomDatabase 类中的 make 方法,该类提供类的对象
Example:
@Database(entities = { Repo.class }, version = 1)
public abstract class RepoDatabase extends RoomDatabase {
private static final String DB_NAME = "repoDatabase.db";
private static volatile RepoDatabase instance;
static synchronized RepoDatabase getInstance(Context context) {
if (instance == null) {
instance = create(context);
}
return instance;
}
private RepoDatabase() {};
private static RepoDatabase create(final Context context) {
return Room.databaseBuilder(
context,
RepoDatabase.class,
DB_NAME).build();
}
public abstract RepoDao getRepoDao();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)