проблема в завершении активности () и при нажатии кнопки «Назад» в Android

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

И я думаю, что это можно сделать, используя onKeyListener и проверяя кнопки «Назад» на клавиатуре, и там я начинаю действие так же, как кнопка «Назад» моей активности. Я хочу знать, правильно ли это делать, или есть способ лучше, чем этот?

Пожалуйста помоги


person Arun Badole    schedule 15.06.2011    source источник


Ответы (4)


Существует лучший способ:

Вы не должны вызывать finish() при переходе от одного действия к другому. Если память нужна, то ОС ее вам очистит, а при нажатии назад она будет работать как нужно. Просто убедитесь, что ваши функции жизненного цикла верны (вы очищаете большие куски памяти, когда теряете фокус и т. д.), и вы станете гораздо более счастливым программистом.

person Nanne    schedule 15.06.2011

Вы можете переопределить метод активности onBackPressed, чтобы переопределить поведение по умолчанию (то есть вызывать finish() для вашей активности).

Однако вы должны подвергать сомнению свой общий дизайн, когда делаете это на регулярной основе. Ознакомьтесь с документацией по Tasks and Back Stack. для других методов управления взаимодействием с пользователем, которые лучше работают с жизненным циклом действий Android.

person Ted Hopp    schedule 15.06.2011

Старайтесь не использовать finish(), ЕСЛИ ВЫ ХОТИТЕ ОСВОБОДИТЬ ПАМЯТЬ, ТО НЕ БЕСПОКОИТЕСЬ О ЭТОМ ОС СДЕЛАЕТ ЭТО, ЕСЛИ ПАМЯТЬ НЕОБХОДИМА, И КНОПКА НАЗАД БУДЕТ РАБОТАТЬ.

Надеюсь, вы знаете жизненный цикл активности. Всякий раз, когда вы нажимаете кнопку «Назад», другие действия прекращаются.

person Stuti    schedule 15.06.2011
comment
вы абсолютно правы. Клавиша Shift застряла.. Теперь все в порядке :) - person Stuti; 15.06.2011

Если вы хотите вызвать finish(), а также хотите, чтобы кнопка возврата вашего устройства работала как кнопка возврата активности, переопределите метод onBackPressed().

Предположим, вы находитесь в действии 2 и хотите вернуться в действие 1, которое является вашим первым действием, а затем внутри Activity2.java напишите код ниже....

public void onBackPressed()
    {
        Intent setIntent = new Intent(this,Activity1.class);
        startActivity(setIntent); 
        return;
    } 
person Jaimin Prajapati    schedule 30.03.2017