我使用API 27,并且在下载客户的地方有此代码。每次下载客户时,我都会得到1万条记录,并将它们插入到Room中。但是插入它们需要5秒。我想同时插入多个10k,所以一个线程将等待另一个线程完成5s。
问题
1)是更快的方法还是另一种方法?
2)同样在API 23中,一次插入需要12s相同数量的记录,但是这是在不同的实际设备上。房间不是最优化的还是性能取决于设备?
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase sInstance;
@VisibleForTesting
public static final String DATABASE_NAME = "Database_db";
public abstract CustomerDao repoCustomer();
public static AppDatabase getInstance(Context context) {
if (sInstance == null) {
synchronized (AppDatabase.class) {
if (sInstance == null) {
sInstance = Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, DATABASE_NAME).build();
}
}
}
return sInstance;
}
public void downloadCustomers(final String table){
executors.diskIO().execute(new Runnable() {
@Override
public void run() {
//Download customer List<Customer>
repo.myDAO.insert(list);
});
}
}