Закрытие прораммы
Закрытие прораммы
Здравствуйте, скажите пожалуйста как можно сделать так чтобы при нажатии кнопки "Назад" на телефоне, закрывались все активити.
P.S. В интернете искал, так толком и не понял.
P.S. В интернете искал, так толком и не понял.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Закрытие прораммы
Ну что-то типа того. Код в активности
[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]
[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]
Re: Закрытие прораммы
Но это закрывает только текущий активити, а мне хотелось бы что бы закрывались ВСЕ активити.
У меня программа выглядит так: на первом активити есть кнопка для перехода на второй, а на втором при нажатии кнопки Назад должно закрываться эти два активити.
У меня программа выглядит так: на первом активити есть кнопка для перехода на второй, а на втором при нажатии кнопки Назад должно закрываться эти два активити.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Закрытие прораммы
С чего вы решили что это закрывает текущий активити?
Re: Закрытие прораммы
Я написал тот код что Вы мне дали. Но оно все равно перекидывает со 2 на 1 активити.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Закрытие прораммы
Странно. 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]
Вставьте этот код в активность, где в интенте укажите имя вашей самой первой активности в приложении
[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 раз.
Re: Закрытие прораммы
Спасибо! Все отлично работает!
