Закрытие прораммы

Ответить
starshas
Сообщения: 57
Зарегистрирован: 22 сен 2013, 17:38

Закрытие прораммы

Сообщение starshas » 25 окт 2014, 21:14

Здравствуйте, скажите пожалуйста как можно сделать так чтобы при нажатии кнопки "Назад" на телефоне, закрывались все активити.
P.S. В интернете искал, так толком и не понял.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Закрытие прораммы

Сообщение Mikhail_dev » 26 окт 2014, 23:00

Ну что-то типа того. Код в активности
[syntax=java5]
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.finish();
android.os.Process.killProcess(android.os.Process.myPid());
return false;
}
super.onKeyDown(keyCode, event);
return false;
}
[/syntax]

starshas
Сообщения: 57
Зарегистрирован: 22 сен 2013, 17:38

Re: Закрытие прораммы

Сообщение starshas » 27 окт 2014, 11:17

Но это закрывает только текущий активити, а мне хотелось бы что бы закрывались ВСЕ активити.
У меня программа выглядит так: на первом активити есть кнопка для перехода на второй, а на втором при нажатии кнопки Назад должно закрываться эти два активити.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Закрытие прораммы

Сообщение Mikhail_dev » 27 окт 2014, 11:23

С чего вы решили что это закрывает текущий активити?

starshas
Сообщения: 57
Зарегистрирован: 22 сен 2013, 17:38

Re: Закрытие прораммы

Сообщение starshas » 27 окт 2014, 11:44

Я написал тот код что Вы мне дали. Но оно все равно перекидывает со 2 на 1 активити.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Закрытие прораммы

Сообщение Mikhail_dev » 27 окт 2014, 11:56

Странно. android.os.Process.killProcess(android.os.Process.myPid()); - это должно было убить приложение.
Вставьте этот код в активность, где в интенте укажите имя вашей самой первой активности в приложении
[syntax=java5]
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent(this, YourFirstActivityName.class);
intent.putExtra("closeApp", true);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
return false;
}
super.onKeyDown(keyCode, event);
return false;
}
[/syntax]
дальше в вашей первой активности, в методе onCreate вставьте это
[syntax=java5]
if (getIntent()!=null && getIntent().getBooleanExtra("closeApp", false)) {
finish();
return;
}
[/syntax]
Последний раз редактировалось Mikhail_dev 27 окт 2014, 12:38, всего редактировалось 1 раз.

starshas
Сообщения: 57
Зарегистрирован: 22 сен 2013, 17:38

Re: Закрытие прораммы

Сообщение starshas » 27 окт 2014, 12:36

Спасибо! Все отлично работает!

Ответить