LoliDeveloper
@LoliDeveloper
Маслёнок, сильно не бейте

Почему OnBackPressed некорректно работает?

В MainActivity.cs:
intent = new Intent(this, typeof(LevelActivity));
StartActivity(intent);


В LevelActivity.cs:
public void OnClick(View v)
        {
            switch (v.Id)
            {
                 case Resource.Id.backButtonLevels:
                 this.OnBackPressed();
                 break;
            }
        }


Оно выходит, но каждый последующий раз, когда я опять нажимаю на "старт" в MainActivity, то на кнопку "Назад" надо нажать уже не 1, а 2 раза, потом 3, потом 4 и так далее, что-бы оно вышло.
Пытался выяснить сколько максимум, дошёл до 14 и перестал проверять.
То есть 14 раз надо было нажать на кнопку "Назад", чтобы оно вернулось на главный экран.
С каждым нажатием кнопки "Старт" количество требуемых нажатий на кнопку "Назад" увеличивалось на 1.

Мне надо чтобы каждый раз когда, пользователь заходит в окно LevelActivity ему требовалось нажать только 1 раз на кнопку "Назад" вне зависимости от того сколько раз он переходил между Главной страницей и страницей с уровнями
  • Вопрос задан
  • 18 просмотров
Решения вопроса 1
LoliDeveloper
@LoliDeveloper Автор вопроса
Маслёнок, сильно не бейте
ИТАК, дело в том, что когда вы возвращаетесь на страницу таким образом, то вызывается функция OnStart(), а у меня OnStart() был такой:
protected override void OnStart()
{
      base.OnStart();
      startButton.Click += StartButton_Click;
}

Как видим, я подписывался на событие каждый раз, когда переходил на эту страницу.
Проблема решена переносом подписки из метода OnStart() в метод OnCreate().
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы