从Firebase中检索android中的数据正在跳帧

时间:2018-01-12 08:29:33

标签: android firebase firebase-realtime-database android-asynctask

尝试从Firebase数据库中检索数据正在跳帧。我试图遍历2000个数据节点并将其保存在我的SQLite数据库中。当数据加载到屏幕上时,仅显示GIF时,活动休息不多。

  databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(final DataSnapshot dataSnapshot) {
            loadingKidsData(dataSnapshot, id);
            loadingReadingData(dataSnapshot);
            updateCurrentUserdata(dataSnapshot, id);
            loadingParentsData(dataSnapshot, id);
            databaseReference.removeEventListener(this);
            gotToNewActivity(isParentSignedUp, id);
        };

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    });

我还发现了this,但异步检索数据仍会导致跳帧。什么可以解决这个问题。

这就是其中一个函数的样子:

    Integer couponcount = dataSnapshot.child("metadata").child("coupons").child("count").getValue(Integer.class);

    if (couponDatabaseHandler.getCouponCount() < couponcount) {
        couponDatabaseHandler.deleteTable();
        Iterable<DataSnapshot> couponSnapshot = dataSnapshot.child("coupons").getChildren();
        for (DataSnapshot snapshot : couponSnapshot) {
            String code = snapshot.child("couponCode").getValue(String.class);
            Integer used = snapshot.child("couponIsUsed").getValue(Integer.class);

            couponDatabaseHandler.addCoupon(new Coupon(snapshot.getKey(), code, used));
        }
    }

有没有办法可以在任何地方加载数据,只有UI线程,以便不会跳帧?

0 个答案:

没有答案