从Firebase数据库加载数据时显示进度

时间:2017-01-10 14:24:36

标签: android firebase firebase-realtime-database

我希望在加载数据时显示进度。它运作良好。但只有一次。如果我再次按下,则会发生错误。到处搜索,尝试了一切。请帮忙。

工作代码。

 a.showProgressDialog();

        mUsersDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                        a.hideProgressDialog();
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
            }

        });

更新即可。这是我得到的错误代码。

  

无法添加窗口 - 令牌android.os.BinderProxy@41ea89e0无效;你的活动在运行吗?

试过。计数对显示 - 消失。等于。没有帮助。 试过。使showProgress不是静态的。没有帮助。 我会尝试把解放放在ui线程上吗?应该有所帮助稍后更新。

1 个答案:

答案 0 :(得分:1)

showProgressDialog方法就是这样。

  public void showProgressDialog() {
    if (mProgressDialog == null) {
        mProgressDialog = new ProgressDialog(a);
        mProgressDialog.setMessage("Loading...");
        mProgressDialog.setIndeterminate(true);
    }

    if (!a.isFinishing()) {
        mProgressDialog.show();
    }

}

经过测试并深入研究,我发现了问题。因为它是偏好活动而且片段是静态的,所以添加的这个方法也是静态的。后来我觉得这可能不好,并把它变成了不稳定的。

它一目了然没有帮助,但在休息之后我又看了一眼,发现mProgressDialog变量仍然是静态的。将其更改为非静态,这解决了我的崩溃。

谢谢大家的帮助。