2013-05-29 3 views
0

Я открываю новую активность при нажатии кнопки одного действия. Новая активность содержит кнопку с изображением. Теперь я хочу, чтобы, когда кто-либо нажимает кнопку «Назад» на мобильном устройстве, он запускает onPause или закрывает приложение, но когда кто-либо нажимает кнопку возврата назад, приложение не запускает onPause и не переходит в последнюю активность. Как это сделать?fire onPause на кнопке возврата устройства, но не на кнопку

ответ

1

Если вы назвали финишем() в первой деятельности в то время как ближайшие к этому второму Activit y, и если вы хотите снова перейти к первому действию при нажатии кнопки «вернуться» во втором действии, вам необходимо вызвать намерение перейти от второго действия к первому действию. Но если вы не назовете финиш() в своем первом действии, придя к этому второму действию, и вы хотите снова перейти к первому действию при нажатии кнопки «вернуться» во втором действии, тогда просто вызовите финиш() при событии клика кнопки «вернуться» во втором действии.

+0

есть что-нибудь, с помощью которого get set, я передаю значение другому действию ??? –

+0

для передачи значений между действиями, которые вы можете использовать в моем втором ответе. –

0

Я видел ваш код из вашего другого вопроса, поэтому вам нужно удалить finish() из onPause и добавить finish() к вашему слушателю «вернуться».

Не называть finish(), если вы хотите сохранить его в стеке (чтобы вернуться).

Пример:

  1. активность А начинает активность B, который начинается активность С (без отделки() называется еще)
  2. Затем, когда вы вернетесь из C, отделки вызова(), и вы см активность Б.
  3. Затем, когда вы вернетесь из B, вызовите отделку(), и вы увидите, активность А.
+0

конец() на «вернуться» закрыть приложение. –

+0

Он закрывает приложение только в том случае, если это единственное действие в стеке. Если вы пришли на этот экран из другого действия, это происходит потому, что вы вызвали finish() в предыдущем действии. – thiagolr

+0

Да, это основная проблема. Можете ли вы дать мне идею предотвратить эту проблему ??? –

0

Так вы можете передавать значения между различными видами деятельности.

Intent i = new Intent(A.this, B.class); 
i.putExtra("numbers", array); 
startActivity(i); 
+0

нет, я не хочу начинать новую деятельность здесь. Я думаю, чтобы передать значение Boolean, а затем проверить onPause() на последнем действии, а затем на нем называть finish(). –

+0

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

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