[英]How to disable an onDestroy method from activity in a specific fragment?
我有一个包含多个片段的活动。 当用户到达最后一个片段并单击按钮时,他会通过意图进入 MainActivity。 这是一个多人问答应用程序,我需要更新数据库中的“回合”字段,该字段决定玩家 1 或 2 是否必须玩。 此字段当前在以下时间更新...
...玩家正常完成他的测验回合(通过单击最后一个片段上的下一个按钮)
...玩家在游戏过程中点击手机的后退按钮(它会打开一个AlertDialog
,因此当玩家选择返回 MainActivity 时会触发“更新转场方法”)
必须有第三个选项来更新转场,这是场景:玩家开始他的回合,但在他的回合期间关闭应用程序。 这意味着目前我的数据库中的“转弯”字段没有得到更新,这意味着在我的代码中两个玩家都不能继续游戏。 我想通过在用户决定关闭应用程序时更新转向字段来避免这种情况。
在片段中有一个ProgressBar
,当用户意外关闭应用程序时它仍在运行,我在片段的onStop
方法中这样做了。 因此我无法在活动中调用onStop
方法来更新数据库中的字段,所以我想知道是否有一种方法可以在不调用 onStop 方法的情况下实现我想要的结果。
这是我的活动,我目前有在 onDestroy 方法内更新 Firestore 中某些字段的方法:
...
// When the user clicks the phones back button during the game an alert window opens to aks if he is sure to exit the game
public void onBackPressed() {
AlertDialog();
}
public void AlertDialog() {
yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
closeGame();
Intent i = new Intent(GameActivity.this, MainActivity.class);
startActivity(i);
finish();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
updateGameStatus();
}
protected void updateGameStatus() {
collectionRef.document(gameId).collection("Round").document("Round").update("round", roundValue + 1)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
}
});
}
...
有什么好的方法可以达到我想要的结果吗?
如果您需要其他信息,请告诉我。
我非常感谢任何提示!
由于无法禁用特定 Fragment 上的 onDestroy,因此我围绕保存 Fragment 的 Activity 的onDestroy
方法安排了我的代码逻辑。
我有一个包含多个片段的活动。 当用户到达最后一个片段并点击一个按钮时,他通过意图进入 MainActivity。 这是一个多人测验应用程序,我需要更新数据库中的“回合”字段,该字段决定玩家 1 还是 2 必须玩。 此字段当前会在...
...玩家正常完成他的测验回合(通过单击最后一个片段上的下一个按钮)
...玩家在游戏过程中点击手机的后退按钮(它会打开一个AlertDialog
所以当玩家选择返回 MainActivity 时,这会触发“更新回合方法”)
必须有第三个选项来更新回合字段,这就是场景:玩家开始他的回合,但在他的回合中关闭应用程序。 这意味着目前我的数据库中的“turn”字段没有更新,这意味着在我的代码中,两个玩家都不能恢复游戏。 我想通过在用户决定关闭应用程序时更新转弯字段来避免这种情况。
在片段中有一个ProgressBar
当用户不小心关闭应用程序时它仍在运行,我在片段的onStop
方法中做到了这一点。 因此我无法在活动中调用onStop
方法来更新数据库中的字段,所以我想知道是否有一种方法可以在不调用 onStop 方法的情况下实现我想要的结果。
这是我的活动,我目前拥有在 onDestroy 方法中更新 Firestore 中某些字段的方法:
...
// When the user clicks the phones back button during the game an alert window opens to aks if he is sure to exit the game
public void onBackPressed() {
AlertDialog();
}
public void AlertDialog() {
yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
closeGame();
Intent i = new Intent(GameActivity.this, MainActivity.class);
startActivity(i);
finish();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
updateGameStatus();
}
protected void updateGameStatus() {
collectionRef.document(gameId).collection("Round").document("Round").update("round", roundValue + 1)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
}
});
}
...
有什么好的方法可以达到我想要的结果吗?
如果您需要其他信息,请告诉我。
我非常感谢任何提示!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.