Правильная обработка запроса, чтобы приложение работало еще в SDK 4 (уровень API 1.6) - PullRequest
0 голосов
/ 10 января 2012

Я заметил, что «назад» запрос был сделан в тот момент, когда пользователь нажал вниз на клавише «назад», но в какой-то момент это было изменено, так что запрос «назад»вместо этого производится в тот момент, когда отпущена клавиша «назад».(Поправьте меня, если я ошибаюсь!) Кто-нибудь знает, с какого SDK (или уровня API) именно это изменение было сделано эффективно?Я думаю, что это был SDK 2.0 (уровень API 5) и, следовательно, код в моей деятельности, как показано ниже, но хотел бы быть уверен ...

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
 if (keyCode == KeyEvent.KEYCODE_BACK)
 {
  if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR)
   handleBackRequest();

  return true;
 }

 return super.onKeyDown(keyCode, event);        
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) 
{
 if (keyCode == KeyEvent.KEYCODE_BACK)
 {
  if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ECLAIR)
   handleBackRequest();

  return true;
 }

 return super.onKeyUp(keyCode, event);
}

Ответы [ 2 ]

1 голос
/ 10 января 2012

Используйте onBackPressed() для Android 2.0 и выше. Используйте onKeyDown() для Android 1.6.

0 голосов
/ 12 января 2012

С кодом из моего предыдущего поста я получал некоторые нежелательные действия (когда появлялись диалоговые окна, клавиатура Android и т. Д.) И по совету CommonsWare изменил мой код на следующий, и он, кажется, работает нормально для различных SDK....

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
 if (keyCode == KeyEvent.KEYCODE_BACK
     && android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR)
 {
  onBackPressed();
  return true;
 }

 return super.onKeyDown(keyCode, event);        
}

@Override
public void onBackPressed()
{
 // handle back request here
}

... Дайте мне знать, пожалуйста, если что-то здесь не совсем верно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...