Я создаю приложение для Android. Как выйти из приложения Android при нажатии на него. Версия Android 2.3.3 и выше. Приложение Android переходит к предыдущей активности, которую я не хочу.
Выйти из приложения Android на задней панели
Ответ 1
Да, вы можете выйти из приложения Android на задней панели. Просто переопределите метод onBackPressed().
public void onBackPressed() {
finish();
}
Ответ 2
Попробуйте это
public void onBackPressed(){
Intent a = new Intent(Intent.ACTION_MAIN);
a.addCategory(Intent.CATEGORY_HOME);
a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(a);
}
Ответ 3
Некоторые действия на самом деле вы не хотите открывать снова, когда кнопка "Назад" нажата, например, "Активность заставки", "Активность приветствия", "Подтверждение Windows". На самом деле вам это не нужно в стеке действий. вы можете сделать это, используя = > открыть файл manifest.xml и добавить атрибут
Android: noHistory = "истина"
для этих действий.
<activity
android:name="com.example.shoppingapp.AddNewItems"
android:label=""
android:noHistory="true">
</activity>
ИЛИ
Иногда вам нужно закрыть все приложение на определенной кнопке "Назад". Здесь лучше всего открыть окно дома вместо выхода из приложения. Для этого вам необходимо переопределить метод onBackPressed(). обычно этот метод открывает верхнюю активность в стеке.
@override
public void onBackPressed(){
Intent a = new Intent(Intent.ACTION_MAIN);
a.addCategory(Intent.CATEGORY_HOME);
a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(a);
}
ИЛИ
на задней кнопке вы хотите выйти из этого действия, а также не хотите добавлять это в стек активности. call finish() внутри метода onBackPressed(). он не будет закрывать все приложение. он пойдет для предыдущего действия в стеке.
onBackPressed -Called, когда активность обнаружила нажатие на кнопку с обратной клавишей
public void onBackPressed() {
finish();
}
Ответ 4
Я знаю, что слишком поздно, но никто не упомянул код, который я использовал, поэтому он поможет другим.
этот moveTaskToBack
работает так же, как и Home Button. Он оставляет стек Back как есть.
public void onBackPressed() {
// super.onBackPressed();
moveTaskToBack();
}
Ответ 5
Вы можете очистить весь задний стек, делая это.
@Override
public void onBackPressed() {
finishAffinity();
}
Ответ 6
Я нашел интересное решение, которое может помочь.
Я реализовал это в моем onBackPressed()
finishAffinity();
finish();
FinishAffinity удаляет подключение существующего действия к его стеку. А потом финиш поможет вам выйти из этого занятия. Который в итоге выйдет из приложения.
Ответ 7
Если у вас есть более одного экрана в истории и вам нужно игнорировать все остальные. Я рекомендую использовать это:
@Override
public void onBackPressed() {
finish();
}
Ответ 8
В обычном режиме вы не должны закрывать приложение - пользователь будет перемещать его назад, нажимая на кнопку "домой" или закрывая ваши действия, нажимая назад.
Но вы можете использовать следующие советы:
1) Закройте старые действия после запуска новых, если они не нужны в back stack:
startActivity(newActivityIntent);
finish();
2) Вы можете переместить задачу обратно (вместо закрытия), если вам нужно http://developer.android.com/reference/android/app/Activity.html#moveTaskToBack(boolean)
3) Если вам это действительно нужно, вы можете использовать System.exit(0)
, но он сильно не рекомендуется и обычно говорит, что у вас проблемы с архитектурой приложений.
Ответ 9
Всплывающее
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setTitle("Really Exit?")
.setMessage("Are you sure you want to exit?")
.setNegativeButton(android.R.string.no, null)
.setPositiveButton(android.R.string.yes, new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
WelcomeActivity.super.onBackPressed();
}
}).create().show();
}
Установить класс в верхней части приложения и без истории
Intent launchNextActivity;
launchNextActivity = new Intent(B.class, A.class);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(launchNextActivity);
введите код здесь Дважды нажмите назад
private static long back_pressed;
@Override
public void onBackPressed(){
if (back_pressed + 2000 > System.currentTimeMillis()){
super.onBackPressed();
}
else{
Toast.makeText(getBaseContext(), "Press once again to exit",
Toast.LENGTH_SHORT).show();
back_pressed = System.currentTimeMillis();
}
}
Ответ 10
moveTaskToBack(); сейчас устарела... Вместо этого используйте: moveTaskToBack (истина);
Ответ 11
Просто используйте код finish();
в соответствии с вашими намерениями закрыть действие. Итак, он больше не появится. Это решило мое.
startActivity(new Intent(SplashActivity.this, MainActivity.class));
finish();
Ответ 12
Котлин:
override fun onBackPressed() {
val exitIntent = Intent(Intent.ACTION_MAIN)
exitIntent.addCategory(Intent.CATEGORY_HOME)
exitIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
startActivity(exitIntent)
}
Другие коды имеют проблемы, некоторые не работают, а некоторые требуют классификации API.