我有一个Firebase的ChildEventListener,在它的onChildAdded()方法中,我调用run()方法(在主线程中运行),该方法始终将大量数据插入SQLite数据库。此时,UI非常冻结。我怎么解决这个问题?谢谢你的回答!
片段代码
fun start() {
val query = fromServerQueueRef.orderByChild(FireEntity.SERVER_TIMESTAMP).startAt(0.0).limitToFirst(READ_LIMIT)
overwatch = object : Overwatch() {
private var counter = 0
override fun onChildAdded(dataSnapshot: DataSnapshot, s: String?) {
counter++
entityHandler.run(dataSnapshot, counter)
if (counter == READ_LIMIT) {
stop()
start()
}
}
}
overwatch.start(query)
}
答案 0 :(得分:0)
如果您使用的是 firebase ,则可以使用脱机同步数据库,它非常简单实用。