Закройте весь стек действий в Android без графических проблем - PullRequest
0 голосов
/ 25 февраля 2012

Я пытаюсь закрыть весь стек действий, используя способ, описанный здесь:

Как убить приложение со всеми его действиями?

А именно, каждое действие начинает другое с startActivityForResult, а в onActivityResult вызывает метод finish (), чтобы закрыть себя вместе с открытием действия.

Проблема в том, что действия в задаче, кажется, перекрашиваются хотя бы один раз, прежде чем закрываются, и это выглядит не очень хорошо. После закрытия самого верхнего действия все ранее открытые действия видны, как в очень быстром слайд-шоу.

Как можно избежать этой графической проблемы?

РЕДАКТИРОВАТЬ: мне нужно, чтобы, если пользователь нажимает кнопку HOME и затем нажимает значок приложения в панели запуска, он возвращается к текущему состоянию стека, а не к самому первому действию снова. Итак, насколько я понимаю, с таким требованием я не могу завершить () действия, прежде чем приступить к следующим.

Ответы [ 2 ]

1 голос
/ 25 февраля 2012

Это нативное поведение, предназначенное для помощи в пользовательском опыте. Когда действие запускается с startActivityForResult, а затем заканчивается, оно (на устройствах, которые допускают необычную анимацию) автоматически ускользает. Это помогает людям не удивляться внезапному изменению экрана.

Вы можете попробовать запустить действия без startActivityForResult и вручную обработать передачу данных в и из действий, а затем определить, каким образом / когда действия заканчивают (), и к каким действиям они возвращаются. Возможно, вы обнаружите, что реализуете что-то, что действия фактически все время передают к соответствующему действию, а не обратно к действию в стеке.

0 голосов
/ 25 февраля 2012
Intent intent = new Intent();
                intent.setClass(getApplicationContext(),
                        PhoneListCheckboxAES.class);
                 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
                finish();

Если вы дадите так, когда начинаете следующее действие, графические проблемы не возникнут

...