Отключить кнопку возврата в android

Как отключить кнопку "Назад" в android при выходе из приложения?

Ответ 1

Переопределите метод onBackPressed и ничего не делайте, если вы собираетесь обрабатывать кнопку возврата на устройстве.

@Override
public void onBackPressed() {
   if (!shouldAllowBack()) {
       doSomething();
   } else {
       super.onBackPressed();
   }
}

Ответ 2

Если вы ищете более высокий уровень API 2.0 и выше это будет отлично работать

@Override
public void onBackPressed() {
    // Do Here what ever you want do on back press;
}

Если вы ищете уровень Android API до 1.6.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_BACK) {
     //preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
     return true;
     }
     return super.onKeyDown(keyCode, event);    
}

Введите вышеуказанный код в свою активность, чтобы предотвратить нажатие кнопки "назад"

Ответ 3

Вы можете сделать это простым способом. Не вызывайте super.onBackPressed().

Примечание: - Не делайте этого до тех пор, пока у вас нет веских причин для этого.

@Override
public void onBackPressed() {
// super.onBackPressed();
// Not calling **super**, disables back button in current screen.
}

Ответ 4

Просто переопределите метод onBackPressed().

@Override
public void onBackPressed() { }

Ответ 5

Я использую его.............

 @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_BACK)
        Toast.makeText(getApplicationContext(), "back press",      
     Toast.LENGTH_LONG).show();

    return false;
       // Disable back button..............
}

Ответ 6

Если вы хотите, чтобы ваше клиентское приложение Android было выведено с какого-либо сервера до того, как ваша активность была убита, → выйдите из службы в своем потоке (это то, что вы все равно должны делать).

Отключение кнопки "Назад" ничего не решит для вас. У вас по-прежнему будет такая же проблема, когда пользователь, например, получит телефонный звонок. Когда получен телефонный звонок, у вашей активности будет столько же шансов на убийство, пока он не получит надежный ответ из сети.

Вот почему вы должны позволить службе ждать в своем потоке ответа из сети, а затем повторить попытку, если это не удастся. Служба андроида не только гораздо менее вероятна, чтобы ее убили, прежде чем она вернет ответ, но если она действительно будет убита до завершения задания, она всегда может быть восстановлена ​​AlarmManager, чтобы повторить попытку.

Ответ 7

Просто переопределите метод onBackPressed() и не нужно вызывать суперкласс метода onBackPressed или другие.

@Override
public void onBackPressed()
{

}

Или передайте текущую активность в метод onBackPressed().

@Override
public void onBackPressed()
{
   startActivity(new Intent(this, myActivity.class));  
   finish();
}

Замените название требуемой активности на myActivity.

если вы используете фрагмент, то сначала вызовите метод callParentMethod()

public void callParentMethod(){
    context.onBackPressed(); // instead of context use getActivity or something related
}

затем вызовите пустой метод

@Override
public void onBackPressed()
{

}

Ответ 8

если вы используете FragmentActivity. то сделайте так:

первый вызов Это внутри вашего Fragment.

public void callParentMethod(){
    getActivity().onBackPressed();
}

а затем вызовите метод onBackPressed со стороны вашего родительского класса FragmentActivity.

@Override
public void onBackPressed() {
  //super.onBackPressed();
  //create a dialog to ask yes no question whether or not the user wants to exit
  ...
}

Ответ 9

Просто используя этот код: Если вы хотите отключить отключение, вы не используете super.OnBackPressed();

@Override
public void onBackPressed() {

}

Ответ 10

Если вы хотите отключить свое приложение во время выхода из системы, вы можете открыть диалоговое окно без отмены.

Ответ 11

Вы можете переопределить метод onBackPressed() в своей деятельности и удалить вызов суперкласса.

@Override
public void onBackPressed() {
  //remove call to the super class
  //super.onBackPressed();
}

Ответ 12

Вам просто нужно переопределить метод для кнопки "Назад". Вы можете оставить метод пустым, если хотите, чтобы ничего не произошло, когда вы нажмете кнопку "Назад". Посмотрите на код ниже:

@Override
public void onBackPressed() 
{
   // Your Code Here. Leave empty if you want nothing to happen on back press.
}

Ответ 13

Кроме этих двух методов, ответьте выше.

onBackPressed() (API Level 5, Android 2.0)

onKeyDown() (API Level 1, Android 1.0)

Вы также можете переопределить dispatchKeyEvent() (API Level 1, Android 1.0),

dispatchKeyEvent() (API Level 1, Android 1.0)

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    // TODO Auto-generated method stub
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
        return true;
    }
    return super.dispatchKeyEvent(event);
}

Ответ 14

Для меня просто переопределение onBackPressed() не срабатывало, но явное указание, какая активность должна начинаться с работы:

@Override
public void onBackPressed(){
  Intent intent = new Intent(this, ActivityYouWanToGoBack.class);
  startActivity(intent);
}

Ответ 15

Попробуй это:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
 if (keyCode == KeyEvent.KEYCODE_BACK) {

   return true;
 }
   return super.onKeyDown(keyCode, event);    
}

Ответ 16

удалить super.onBackPressed() из public void onBackPressed() отлично работает. его проверено в Android 9

Ответ 17

Отключить кнопку назад в Android

@Override
public void onBackPressed() {
    return;
}