Активность вызывается два раза

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Аватара пользователя
xponchickx
Сообщения: 3
Зарегистрирован: 03 июн 2012, 00:38

Активность вызывается два раза

Сообщение xponchickx » 03 июн 2012, 00:51

У меня есть активность в которую передаются данные с помощью putExtra();
Когда активность создаётся, я беру данные, что то там делаю с ними.
Потом нажимаю Back, после чего происходит NullPointerException. Методом научного дебагинга выяснил,
что при нажатии на Back вызывается onPause, а потом снова onCreate (О_о Зачем?!), после чего он опять пытается достать данные из Intent (получает null) и опять что-то там с ними сделать (ошибочка вышла).
Почему он пытается создать активность два раза, причём второй раз при нажатии Back, и как это исправить?

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Активность вызывается два раза

Сообщение damager82 » 04 июн 2012, 10:48

xponchickx писал(а):Почему он пытается создать активность два раза, причём второй раз при нажатии Back, и как это исправить?
Баг какой-то. А на других версиях эмулятора тоже самое?

Проверку на null в любом случае лучше поставить, всякое бывает.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Prospekt
Сообщения: 41
Зарегистрирован: 30 май 2012, 23:06

Re: Активность вызывается два раза

Сообщение Prospekt » 05 июн 2012, 11:01

Уточните вопрос. Как его понял я:
1 вариант) У вас есть 2 Активити, из одной вызывается другая с некими параметрами через putExtra(). Вы жмете BACK у вас скрывается вторая Активити и показывается первая, после чего каким-нибудь образом запускается опять вторая Активити.
В этом случае все работает правильно. Если со второй активити "ушли", то она будет создана занова.

2 вариант) Если вы во второй Активити перехватываете и обрабатываете нажатие на кнопку Back, тогда это действительно глюк. Хотя некоторые люди говорят, что защитить от Back-ка нельзя никак. Тут мнения где-то 50\50. Надо уточнить, пока этот момент выглядет спорным, может быть даже зависит от модели аппарата, версии ОС или эмулятора. Хотя на моем телефоне игрушки нажатие на Back перехватывают. Вот кнопку "HOME" точно никак отловить не получится.

Аватара пользователя
xponchickx
Сообщения: 3
Зарегистрирован: 03 июн 2012, 00:38

Re: Активность вызывается два раза

Сообщение xponchickx » 05 июн 2012, 11:50

Спасибо за ответы.
Нашёл проблему.
Она слишком самокритична, чтобы её писать здесь.

Ответить