2016-05-31 3 views
-1

У меня есть приложение для игры, и я хочу приостановить игру, когда пользователь нажимает кнопки «Назад», «Дом», «Меню» или «Питание». Я пробовал код ниже, но работает только кнопка «Назад». Другие не показывают даже сообщения Toast. Я не знаю почему. Есть ли проблема с кодом? Если нет, есть ли лучший способ сделать это?Как установить приемник, когда программа приостановлена ​​(пользователь выходит из приложения)?

public boolean onKeyDown(int keycode, KeyEvent e) { 
    switch(keycode) { 
     case KeyEvent.KEYCODE_HOME: 
      pause(null); 
      Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show(); 
      return true; 
     case KeyEvent.KEYCODE_MENU: 
      pause(null); 
      Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show(); 
      return true; 
     case KeyEvent.KEYCODE_BACK: 
      pause(null); 
      Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show(); 
      return true; 
     case KeyEvent.KEYCODE_POWER: 
      pause(null); 
      Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show(); 
      return true; 
    } 
    return super.onKeyDown(keycode, e); 
} 

}

+3

Это то, на что рассчитаны методы жизненного цикла Activity. – DeeV

+2

Ознакомьтесь с методом 'onPause()' активности. –

ответ

0

Просто поставить свой код для приостановки игры в методе вашей деятельности (в Android студии, вы можете нажать кнопку CTRL+O, чтобы получить меню метода коррекции, и начните вводить onPau и выберите метод):

@Override 
public void onPause() { 
    super.onPause(); 
    pause(null); 
    Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show(); 
} 

Теперь, если ваша деятельность по независимо причине выходит из фокуса (что-то еще открыт т op от него, например. откройте whatsapp, чтобы ответить на сообщение), он будет приостановлен. Я рекомендую вам читать далее here.

Смежные вопросы