-1

Я создал приложение для контактов в андроиде. Но когда я вхожу в приложение, пройдите через 3-4 экрана и, соответственно, вызывается различные действия. После этого, если я снова нажмем кнопку «Назад», я вернусь на первый экран приложения. Если здесь я нажимаю кнопку возврата, то снова или снова отображается предыдущий посещенный экран, скорее приложение должно либо выйти, либо пойти в фоновом режиме.Приложение для Android не выходит и не выходит на задний план

Может ли кто-нибудь помочь мне решить это, где я пропустил некоторые стандарты, из-за которых я застрял?

Вкратце: кнопка возврата на первом экране приложения показывает нерелевантные ранее посещенные экраны приложения для Android. Поэтому я не могу переместить приложение в фоновом режиме или выйти.

+0

Используйте кнопку «Домой». – KalEl

ответ

0

Эта проблема может иметь следующие причины:

  • Приложение не было закрыто до того

Если вы разрабатываете с Eclipse, и эмулятор и старая версия приложения не обязательно если вы что-то исправите и снова протестируете приложение. Eclipse сообщает эмулятору , чтобы начать основное мероприятие.

Таким образом, ваш стек активность, возможно, выглядел следующим образом:

Main Activity -> Activity A -> Activity B -> Activity A 

, таким образом, нажимая back от последнего будет воспитывать деятельность в порядке

Activity B -> Activity A -> Main Activity -> Home-Screen 

если не выйти из приложения и просто позвольте эмулятору создать Main-Activity снова, это произойдет:

Main Activity -> Activity A -> Activity B -> Activity A -> Main Activity 

Таким образом, любые действия с этой точки расширяют стек действий, но не обязательно очищают старые записи из вашего стека. (Это произойдет только в том случае, если система считает их не нужно больше, и убивает их)

  • переопределены методы

Возможно (но маловероятно), что вы вызвали такое поведение самостоятельно.

Если вы не переопределили методы, такие как onPause(), вы, безусловно, не вызывали этого. Некоторые приложения заставляют начать действие в onPause() - методе (который очень плохой стиль, так как это не ожидаемое поведение). Это может изменить ваш стек активности.

+0

В моем случае это, похоже, проблема с ** Overriden Methods **. Я хочу показать экран входа, если приложение исходит из фона, поэтому я сохранил переменную в Intent во время метода onPause для каждого действия. Следовательно, в каждом случае я переопределяю метод 'onPause()', но я не начал никакой активности из 'onPause()' хотя. Вы все еще думаете, что это проблема? – HarsH1610

+0

предоставьте код ваших методов onPause() и сегментов кода, в которых вы начинаете работу. Трудно сказать без этого. – stefan

+0

Мне нужно проверить, приходит ли приложение из фона, поэтому я создал базовые классы для действий для разных целей и переопределял 'onPause()'. '@Override \t общественного недействительный startActivity (Намерение намерение) \t { \t \t super.startActivity (намерение); \t \t setGlobalIntentVariable (намерение); \t \t super.finish(); \t} \t общественного недействительными setGlobalIntentVariable (Намерение p_intent) \t { \t \t p_intent.putExtra ("приложение", "ContactZ"); \t} \t @Override \t защищен недействительными OnPause() { \t \t getIntent() putExtra ("активность", this.getClass() GetName() ToString()...); \t \t onSaveInstanceState (getIntent(). GetExtras()); \t \t super.onPause(); \t} 'Пожалуйста, формат. Спасибо – HarsH1610

Смежные вопросы