Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/36: Рейтинг темы: голосов - 36, средняя оценка - 4.67
Опа!!
16 / 16 / 1
Регистрация: 30.09.2009
Сообщений: 89
1

Завершение предыдущего активити (удаление из стека)

27.11.2011, 01:06. Просмотров 6636. Ответов 11
Метки нет (Все метки)

товарищи, подскажите способы завершения предыдущего активити в стеке, чтобы по нажатию клавиши "назад" из последующего я уже не возобновлял предыдущее??

вроде раньше использовал простой finish() перед startActivity(), теперь почему-то после перехода на новое предыдущее из стека не удаляется. возможно ли, что проблема кроется в том, что нужный код выполняется внутри метода onPostExecute класса AsyncTask?

код выглядит где-то так:

Java
1
2
3
4
5
6
7
8
9
10
11
doInBackground(...) {
if (...) {
// finish current activity
finish();
                    
// ... and go to the new activity
Intent intent = new Intent();
intent.setClass(getApplicationContext(), PackagesList.class);
startActivity(intent);  
}
}
ожидаю, что после выполнения проверки if() выполняется и финиш, запускаем новое активити, а в предыдущее по нажатию "назад" уже не возвращаемся. но не тут-то было!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 01:06
Ответы с готовыми решениями:

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити
Сделал меню в виде ListView. При клике на меню запускаются активити. На...

Как вызвать метод в активити классе из обычного не активити класса?
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в...

Вызов новой активити не из класса активити
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4)...

Изменение параметров активити из другого активити
Как сделать так чтобы из первого активити поменять final ImageView...

Отображение активити поверх другого активити
Ребят подскажите пожалуйста как такое сделать. Есть активити с картой, по...

11
lolopolosko
1354 / 313 / 6
Регистрация: 21.11.2009
Сообщений: 992
27.11.2011, 13:32 2
в OnPause() пропишите finish() а не в где нибудь... хотя не знаю точно.
0
Опа!!
16 / 16 / 1
Регистрация: 30.09.2009
Сообщений: 89
27.11.2011, 13:43  [ТС] 3
наверное, в onPause вызывать - это не лучшая идея, т.к. к нему идет обращение не только в случае успешного перехода к следующему активити, а и при сворачивании приложения, например. я всё верно понимаю?
0
lolopolosko
1354 / 313 / 6
Регистрация: 21.11.2009
Сообщений: 992
27.11.2011, 13:52 4
Опа!!, да
1
Опа!!
16 / 16 / 1
Регистрация: 30.09.2009
Сообщений: 89
27.11.2011, 13:53  [ТС] 5
ну тогда Ваш вариант не подходит
0
kimp
0 / 0 / 0
Регистрация: 05.04.2015
12.06.2012, 09:23 6
Java
1
2
3
        moveTaskToBack(true);
        finish();
        System.exit(0);
0
flashok
87 / 89 / 1
Регистрация: 14.02.2009
Сообщений: 293
12.06.2012, 14:13 7
во-первых я бы не рекомендовал пользоваться AsyncTask
во-вторых почитайте про Loader
в третьих асинк таск не отваливаеться когда астивити уничтожаеться
в четвертых ваша проверка - это треш какой то
в пятых асин таск не мешает завершению активити, проверте ваш манифест на наличие доп свойст у активити, типа такого android:alwaysRetainTaskState="true"
0
silentnuke
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
12.06.2012, 14:32 8
Цитата Сообщение от flashok Посмотреть сообщение
во-первых я бы не рекомендовал пользоваться AsyncTask
обоснуйте
0
flashok
87 / 89 / 1
Регистрация: 14.02.2009
Сообщений: 293
12.06.2012, 14:43 9
Не рекомендовал так как async task при перевороте девайса перезапускаеться (да можно написать костыль). В loader уже все обработана данная ситуация. Также существую проблемы с остановкой async task например когда в асин таске выполняеться посылка запроса на сервер. В Loader сам следит за активити и если нет активити не возращает результат. Про третье проверял на опыте все отрабатывает даже после закрытия активити (например тот же запрос), более того после закрытия главного активи (вызывался дестрой) по логики у меня вываливалося диалог. Как то так.
Если в чем то не прав, послушаю умные мысли
0
silentnuke
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
12.06.2012, 14:59 10
Цитата Сообщение от flashok Посмотреть сообщение
Не рекомендовал так как async task при перевороте девайса перезапускаеться (да можно написать костыль). В loader уже все обработана данная ситуация. Также существую проблемы с остановкой async task например когда в асин таске выполняеться посылка запроса на сервер. В Loader сам следит за активити и если нет активити не возращает результат. Про третье проверял на опыте все отрабатывает даже после закрытия активити (например тот же запрос), более того после закрытия главного активи (вызывался дестрой) по логики у меня вываливалося диалог. Как то так.
Если в чем то не прав, послушаю умные мысли
за 10 минут пишется asynctask manager, который решает указаные проблемы и дальше используется в других проектах.
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,327
29.04.2014, 20:19 11
moveTaskToBack(true); как работает эта функция?
0
kalaganoff
Заблокирован
30.04.2014, 10:47 12
я извиняюсь, может быть я не правильно понял задачу, но что мешает при запуске активити использовать флаг FLAG_ACTIVITY_CLEAR_TOP ?
как-то так:
Java
1
2
3
Intent a = new Intent(this,A.class);
        a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(a);
подробнее о флагах и стеке activity можно почитать тут
0
30.04.2014, 10:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2014, 10:47

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

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

Удаление предыдущего числа
Здравствуйте. Необходима помощь в реализации кода, для удаления предыдущего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru