gpt4 book ai didi

android - 在后台多次调用 AddValueEventListener

转载 作者:行者123 更新时间:2023-11-29 19:05:36 24 4
gpt4 key购买 nike

这是我的代码:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ValueEventListener userNavListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.v(Tag, "Called Multiple Times");
}
@Override
public void onCancelled(DatabaseError databaseError) {

}
};

mDatabase.addValueEventListener(userNavListener);
}

我想要的:
- 在后台应用addValueEventListener 的单个实例
- 因此,我不想使用onDestroy()方法

问题是 Log.v 打印不止一次当数据只改变一次 如果我这样做:
- 我打开应用程序,
- 我再次关闭应用程序,
- 然后我再次打开应用程序,
- 然后问题就出现了,就是onDataChange Log打印了三次

我有什么解决方案可以防止这种情况发生吗?

感谢您花时间阅读这个问题,如果您知道答案,请回答我的问题。

最佳答案

当不再需要 eventListener 时,您必须删除它们。

安全的地方是在onDestroy()

@Override
public void onDestory() {
if (mDatabase!= null && userNavListener!= null) {
mDatabase.removeEventListener(userNavListener);
}
}

关于android - 在后台多次调用 AddValueEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47369081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com