У меня полноценная многопользовательская игра (викторина). У меня есть таймер для игры (заканчивается через 90 секунд), и у меня есть метод отступления (если игрок нажимает кнопку «Назад», он проигрывает и получает 0).
Моя проблема в том, что если один из двух игроков закроет приложение (или даже при повторной обработке), как отправить сообщение, что игра окончена, и перейти к выигрышной активности? Мне полезно показать код создания игры:
private void initializeGameModel() {
mGameModel = new GameModel();
mGameModel.setId(mGameWaitModel.getId());
mGameModel.setGameMaster(getPlayerModel(true));
mGameModel.setGameSlave(getPlayerModel(false));
mGameModel.setGenerateNewQuestion(true);
mGameModel.setDidGameEnd(false);
LOGD(TAG, "Game Model initialized");
}
и инициализация firebase:
private void initializeFirebase() {
mGameFirebase = FirebaseDatabase.getInstance()
.getReferenceFromUrl(Constants.FIREBASE_BASE_URL + Constants.FIREBASE_TEST_PATH + Constants.FIREBASE_GAME_ACTIVE_PATH + mGameWaitModel.getId());
mGameFirebase.setValue(mGameModel);
mGameFirebase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mGameModel = dataSnapshot.getValue(GameModel.class);
if (mGameModel == null) {
return;
}
try {
if (mGameModel.isGenerateNewQuestion()) {
mGameModel.getGameMaster().setDidPlayerAnswer(false);
mGameModel.getGameMaster().setPlayerAnswerCorrect(false);
mGameModel.getGameSlave().setDidPlayerAnswer(false);
mGameModel.getGameSlave().setPlayerAnswerCorrect(false);
}
if (isGameMaster() && mGameModel.isGenerateNewQuestion()) {
generateNewQuestion();
mGameModel.setGenerateNewQuestion(false);
mGameFirebase.setValue(mGameModel);
return;
}
На самом деле мне нужно, чтобы один из двух пользователей отступил, закрыл приложение (нажав кнопку «Домой») и завершил игру (для обоих пользователей) и использовал код для завершения игры.
Заранее благодарим за любую помощь и усилия!