Как заставить действие перезагружаться, когда пользователь нажимает кнопку «Назад» в дочернем действии - PullRequest
0 голосов
/ 23 июня 2011

У меня есть действие, которое запускает Сборщик контактов в методе onCreate. Когда пользователь выбирает контакт , этот идентификатор пользователя передается новому child activity. Однако, если пользователь нажимает клавишу «Назад», он отображается с пустым экраном, потому что onCreate, похоже, не вызывается снова.

Я пробовал, onRestart и onResume, которые решают проблему с ошибкой, но что происходит, если это состояние гонки, при котором он будет призывать открыть действие Contact picker до ID передается в child activity.

EDIT: Я использую API 2.3.3.

Я пытался перегрузить метод onBack в дочернем действии, чтобы запустить новое действие. Но делать изменения, как происходит рендеринг страницы. Когда вы запускаете новое действие, новое действие появляется с правой стороны экрана, но когда вы наносите ответный удар, нормальная реализация заставляет предыдущий экран скользить с левой стороны. Если я перегружаю onBack для вызова нового действия, то происходит, когда пользователь нажимает кнопку «Назад», и появляется экран с правой стороны экрана, а не слева. Мне нужно, чтобы скользящее окно было таким же, как шаблон по умолчанию.

Ответы [ 2 ]

1 голос
/ 23 июня 2011
@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            moveTaskToBack(false);//this will not allow to go back

            //Here put your code i.e start new activity but first finish current activity

            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
1 голос
/ 23 июня 2011

Вы не можете вызвать onCreate при нажатой клавише back.Однако вы можете сделать одну вещь, которая завершит вашу деятельность по сбору контактов.Переопределите функцию onBackPressed в дочернем действии и начните новое действие там.

...