Как настроить onBackButton слушатель активности - PullRequest
8 голосов
/ 03 апреля 2012

У меня есть класс A, который запускает действие через startActivityForResult, передавая ему Intent. В другом классе, скажем, я получаю это Intent и воссоздаю им активность. Как я могу прослушать события для этой деятельности, например, действие, которое было начато для результата, выполняется, и пользователь нажал кнопку «назад», поэтому я хочу выполнить какое-то действие. Как я могу это сделать? Заранее спасибо.

Активность, в которой я воссоздаю экземпляр объекта, не является производным от класса Activity. Это просто ДЕЯТЕЛЬНОСТЬ. Так что у меня есть только объект. Есть ли способ сделать такие вещи с экземпляром класса, но не класса?

Ответы [ 3 ]

22 голосов
/ 03 апреля 2012

Вы должны переопределить метод: onBackPressed() класса Activity.

4 голосов
/ 03 апреля 2012

В упражнении, в котором вы хотите действовать с помощью кнопки «назад», просто переопределите onKeyDown (или onKeyUp) метод:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        //do whatever you need for the hardware 'back' button
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

Имейте в виду, что если вы хотите, чтобы клавиша "назад" продолжала завершать вашу деятельность, вам нужно будет включить

setResult(result);    //if you want to pass a result to activity A
finish();

где-то в этом условном выражении до return true;

1 голос
/ 03 апреля 2012

Вы можете переопределить onDestroy и поместить туда код.

Другая возможность (и может лучше соответствовать вашим потребностям) - переопределить onBackPressed.

...