我希望在加载数据时显示进度。它运作良好。但只有一次。如果我再次按下,则会发生错误。到处搜索,尝试了一切。请帮忙。
工作代码。
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线程上吗?应该有所帮助稍后更新。
答案 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变量仍然是静态的。将其更改为非静态,这解决了我的崩溃。
谢谢大家的帮助。