Java 在firestore更新方法之后重新创建活动
我一直在尝试制作一个应用程序,在60秒后,用户输入收集的所有数据都会更新到firestore的现有数据中。但是,只要我调用firebase的.update方法,活动就会被重新创建,计时器就会再次启动,并且不会继续下一个活动。它卡在一个循环中,每60秒之后,活动就会一次又一次地重新创建自己。我知道这是因为update方法,因为如果我对特定的update方法行进行注释,应用程序将正常运行,也就是说,60秒后,应用程序将启动下一个活动。另外,我使用firestore侦听器只获取一次数据,而不是实时更新侦听器。我还是不明白为什么会这样。请帮忙 编辑:Java 在firestore更新方法之后重新创建活动,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我一直在尝试制作一个应用程序,在60秒后,用户输入收集的所有数据都会更新到firestore的现有数据中。但是,只要我调用firebase的.update方法,活动就会被重新创建,计时器就会再次启动,并且不会继续下一个活动。它卡在一个循环中,每60秒之后,活动就会一次又一次地重新创建自己。我知道这是因为update方法,因为如果我对特定的update方法行进行注释,应用程序将正常运行,也就是说,60秒后,应用程序将启动下一个活动。另外,我使用firestore侦听器只获取一次数据,而不是实时更新
cr.document.update是给我带来麻烦的一个,如果我在计时器用完后注释掉它,下一个活动就会开始,但是如果我取消注释,在计时器结束后,它只会重新创建活动并在循环中运行。老实说,
GamePage.this.finish()
似乎很可疑,如果你删除它会发生什么
移除startActivity时会发生什么
更新方法不应该是真正的问题,除非它导致可能重新启动应用程序的异常
在开始新活动之前,请尝试执行更新一些代码片段。请提供产生此行为的代码。我添加了finish方法来结束此活动,只是尝试看看会发生什么,但它不会结束。至于更新方法,我甚至试着在开始新的活动之前使用它,但它不起作用。在调用startActivity后放置它,会打开新活动,但它会在1秒后返回到此活动。若我删除启动活动,它将像往常一样在循环中运行。只有当我对更新行进行注释时,应用程序才能正常运行。或者它只是在循环中运行
new CountDownTimer(5000, 1000) {
@Override
public void onTick(long l) {
roundTimerView.setText(String.valueOf(counter));
counter--;
}
@Override
public void onFinish() {
newPlayerData.cards = cards;
GamePage.this.finish();
Intent intent = new Intent(GamePage.this,NextRoundReady.class);
Bundle bundle = new Bundle();
bundle.putString("USERNAME",Username);
bundle.putString("ROOMID",RoomID);
intent.putExtras(bundle);
startActivity(intent);
cr.document(RoomID).update(Username,newPlayerData);
}
}.start();