Tay*_*Lee 1 android android-sqlite android-room
我们可以按照以下两种方法抛出数据库
/**
* Copyright:MyApplication
* Author: liyang <br>
* Date:2018/6/15 ??5:07<br>
* Desc: <br>
*/
@Database(entities = {Pet.class ,User.class}, version = 1)
public abstract class RoomDb extends RoomDatabase {
private static RoomDb INSTANCE;
private static final Object sLock = new Object();
public abstract UserDao getUserDao();
public abstract PetDao getPetDao();
public static RoomDb getInstance(Context context) {
if (INSTANCE == null) {
synchronized (sLock) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),RoomDb.class,"Sample.db").build();
}
}
}
return INSTANCE;
}
public static RoomDb getInMemoreyDatabase(Context context){
if (INSTANCE == null) {
synchronized (sLock) {
if (INSTANCE == null) {
INSTANCE = Room.inMemoryDatabaseBuilder(context.getApplicationContext(),RoomDb.class).build();
}
}
}
return INSTANCE;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我真的很想知道它们之间的区别!getInMemoreyDatabase是否比Room.databaseBuilder运行得更快?
inMemoryDatabaseBuilder():数据库将在系统内存中创建,如果您终止了该应用程序(杀死进程),则数据库将被删除并且数据将不会持久保存。可以在测试时使用
databaseBuilder():将在其中创建数据库/data/data/com.your.app并将其持久化。您将在生产中使用它
RoomDatabase.Builder持久数据库。一旦建立了数据库,您应该保留对它的引用并重新使用它。RoomDatabaseBuilder<T>可用于创建数据库的
A。RoomDatabase.Builder为内存数据库创建一个。当进程被终止时,存储在内存数据库中的信息就会消失。一旦建立了数据库,您应该保留对它的引用并重新使用它。RoomDatabaseBuilder<T>可用于创建数据库的
A。| 归档时间: |
|
| 查看次数: |
2840 次 |
| 最近记录: |