Hello In our app we are inserting large amount of data in database using for loop, First we syncdown our application and getting large json and after parsing we use loop to insert data in separate columns that takes almost 1-2 minutes, I want to make it more faster, I have searched on stackoverflow and found to add transaction insert a lot of data into sqlite in android its effective But I want to make it more faster
Here is how we are inserting data
return Observable.create(ObservableOnSubscribe { e: ObservableEmitter<Float?> ->
db?.beginTransaction()
clearTable()
for (i in list.indices) {
val data = list[i]
addRecord(data)
val done = i + 1
e.onNext(done.toFloat())
}
db?.setTransactionSuccessful()
db?.endTransaction()
e.onComplete()
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
fun addRecord(data: TargetBrands?): Long {
var id: Long = -1
try {
id = targetBrandsDao.insertOrReplace(data)
} catch (ex: Exception) {
CustomMethods.catchException(context, TAG, ex, "addRecord()")
}
return id
}