Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 88, средняя оценка - 4.88
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 254
#1

Программное завершение приложения - Программирование Android

29.03.2013, 12:38. Просмотров 13198. Ответов 12
Метки нет (Все метки)

Здравствуйте.
Как программно завершить приложение? То есть не завершить активность через finish(), а именно выйти из приложения вообще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2013, 12:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программное завершение приложения (Программирование Android):

Завершение работы приложения - Программирование Android
у меня есть менюшка. там есть кнопочка quit, мне нужна чтоб она полностью прекращала работу приложения. Я пытаюсь сделать подобным образом:...

Программное удаление приложения - Программирование Android
Реально ли из android-приложения деинсталлировать другое android-приложение?

Полное завершение работы приложения при нажатии навигационной кнопки "Назад" - Программирование Android
Здравствуйте. Имеется приложение. При нажатии кнопки "Домой" приложение выходит на главный экран и остается активным в панели...

Завершение сервиса - Программирование Android
вот метод завершающий сервис в основной активности: public void onClickStop(View v) { stopService(new Intent(this,...

Завершение потока - Программирование Android
Необходимо корректно завершить поток. Сейчас код такой class MyThread extends Thread { private void method() throws...

Коректное завершение программы - Программирование Android
Есть главное activity, которое запускает сервис. Сервис выполняет длительную операцию. При нажатии Back приложение сворачивается, сервис...

12
dr_yand
156 / 138 / 6
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
29.03.2013, 12:42 #2
System.exit()
0
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 254
29.03.2013, 12:54  [ТС] #3
Вот такой вариант почему то всерн не выходит а перескакивает на предыдущую активность
Java
1
2
3
4
5
6
7
8
@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_BACK){
            System.exit(0);
        }
        return super.onKeyDown(keyCode, event);
    }
Что не так?
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
29.03.2013, 13:53 #4
JIyrApy, System.exit срабатывает но Android восстанавливает приложение скорее всего так как это нарушает Activity Lifecycle. Кстати гугл не рекомендует помещать в программы возможность выхода из приложения посредством всяких кнопочек подробнее тут
0
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 254
29.03.2013, 14:18  [ТС] #5
А как то можно очистить список активностей, чтобы при нажатии на кнопку "Назад" приложение считало, что это единственная запущенная его активность? Ну или как то финишировать все предыдущие активности приложения из одной, центральной активности?
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
29.03.2013, 15:59 #6
JIyrApy, зачем при нажатии Back срабатывает событие onBackPressed которое по умолчанию завершает активность вызывая finish().
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.03.2013, 16:00 #7
а почему бы не завершать текущую активити при переходе но новую? тогда не останутся висеть предыдущие активити.
1
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 254
29.03.2013, 16:13  [ТС] #8
Да такой вариант с закрытием текущей активности конечно хорош, но тут есть загвоздка. Вот на примере:

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

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

Ну а если не завершать, то получается следующее. зашел я в какую-нить глубокую активность и вернулся из нее в главную активность. И теперь, если нажать в главной активности "Назад" - то ясен пень она вернется в ту самую глубокую активность, а не завершит приложение. Вот я и хочу найти способ, чтобы при нажатии на кнопку "Назад" в главной активности в любом случае приложение закрывалось
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
29.03.2013, 16:37 #9
JIyrApy, а если так

Java
1
2
moveTaskToBack(true);
super.onBackPressed();
http://stackoverflow.com/questions/2...een-on-android
1
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 254
29.03.2013, 17:16  [ТС] #10
Ха. Ну в принципе пойдет, приложение пропадает) Правда, если восстановить из списка скрытых активностей, всерн появляется не главная активность, а предыдущая дочерняя, но ниче, это уже издержки. Спасибо большое за вариант решения
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.03.2013, 21:11 #11
так и не понял что мешает закрывать каждую активити при переходе и написать логику переходу к радительской активити.

а чтобы попасть на главную закрыв все дочерные можно воспользоваться флагом FLAG_ACTIVITY_CLEAR_TOP
1
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 254
30.03.2013, 11:09  [ТС] #12
Шикааарно! FLAG_ACTIVITY_CLEAR_TOP - то что нужно. В довесок допилил переходы назад - теперь вообще все как надо. Спасибо всем откликнувшимся!
0
lifestyle
Mobile Developer
232 / 228 / 4
Регистрация: 10.05.2009
Сообщений: 917
01.04.2013, 21:22 #13
Ни в коем случае не пользуйтесь System.exit(0);
1) Потом не расхлебать последствий при поддержке приложения
2) Противоречие философии Андроида
3) Есть набор флагов позволяющий сделать все необходимое, не возвращаться к предыдущим Активити при нажатии кнопки Back - SingleTop or singleInstance , изьятие приложения из истории (recents app) и т.п.
читайте документацию
0
01.04.2013, 21:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2013, 21:22
Привет! Вот еще темы с ответами:

Принудительное завершение звонка - Программирование
Здравствуйте. Подскажите пожалуйста как завершить звонок не дожидаясь, когда на него ответят. Звоню так: Intent intent = new...

Завершение потока AsyncTask - Программирование Android
Доброго времени суток. Возникла проблема с закрытием потока. Первый раз код выполняется и все норм, но т.к. при нажатии на кнопку...

Ошибка при вызове приложения из другого приложения - Программирование Android
Сделано два простеньких приложения и я хочу чтобы одно приложение запускало другое. В приложении, которое будет запущено установлен фильтр...

Из приложения А проверить наличие установленного на устройстве приложения В - Программирование Android
Извиняюсь за нубский вопрос. Подскажите в андроид есть возможность из приложения А проверить наличие установленного на устройстве...


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

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

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