首页 > 解决方案 > android中的Firebase子事件监听器

问题描述

我有一个 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)
}

标签: androidmultithreadingsqlitefirebaseuser-interface

解决方案


如果您使用的是firebase ,则可以使用离线同步数据库,它非常简单实用。


推荐阅读