проблема в активности финиша () и при нажатии кнопки назад в андроиде - PullRequest
1 голос
/ 15 июня 2011

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

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

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

Ответы [ 4 ]

4 голосов
/ 15 июня 2011

Есть лучший способ:

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

2 голосов
/ 15 июня 2011

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

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

.
1 голос
/ 30 марта 2017

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

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

public void onBackPressed()
    {
        Intent setIntent = new Intent(this,Activity1.class);
        startActivity(setIntent); 
        return;
    } 
1 голос
/ 15 июня 2011

Старайтесь не использовать finish () , если вы хотите освободить память, то не волнуйтесь о том, что операционная система сделает то, что в случае необходимости памяти, и кнопка возврата будет работать.

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

...