Как отключить кнопку возврата в Android при выходе из приложения?
Как отключить кнопку возврата в Android при выходе из приложения?
Ответы:
Переопределите метод onBackPressed и ничего не делайте, если вы хотите обработать кнопку возврата на устройстве.
@Override
public void onBackPressed() {
if (shouldAllowBack()) {
super.onBackPressed();
} else {
doSomething();
}
}
Если вы ищете более высокий уровень 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);
}
Запишите вышеуказанный код в свою активность, чтобы предотвратить нажатие кнопки «назад»
Вы можете сделать это простым способом. Не вызывайте super.onBackPressed ().
@Override
public void onBackPressed() {
// super.onBackPressed();
// Not calling **super**, disables back button in current screen.
}
Просто переопределите метод onBackPressed () .
@Override
public void onBackPressed() { }
Я использую это .............
@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..............
}
Если вы хотите убедиться, что ваше клиентское приложение для Android вышло из системы с какого-либо сервера до того, как ваша активность будет уничтожена -> выйдите из службы со своим собственным потоком (это то, что вы должны делать в любом случае).
Отключение кнопки «назад» ничего не решит для вас. У вас все равно будет та же проблема, когда пользователь, например, получит телефонный звонок. Когда телефонный звонок получен, ваша активность имеет столько же шансов быть убитым, чем получить надежный ответ из сети.
Вот почему вы должны позволить службе ждать в своем потоке ответа от сети, а затем повторить попытку, если это не удастся. Служба Android не только намного менее вероятна, чтобы ее убили, прежде чем она получит ответ, но и если она действительно будет убита до завершения работы, то AlarmManager всегда может восстановить ее, чтобы попытаться снова.
Просто переопределите метод 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()
{
}
если вы используете 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
...
}
Вы можете переопределить onBackPressed()
метод в своей деятельности и удалить вызов суперкласса.
@Override
public void onBackPressed() {
//remove call to the super class
//super.onBackPressed();
}
Вам просто нужно переопределить метод для кнопки назад. Вы можете оставить метод пустым, если хотите, чтобы при нажатии кнопки «назад» ничего не происходило. Пожалуйста, посмотрите на код ниже:
@Override
public void onBackPressed()
{
// Your Code Here. Leave empty if you want nothing to happen on back press.
}
Помимо этих двух методов из ответа выше.
onBackPressed () (уровень API 5, Android 2.0)
onKeyDown () (Уровень API 1, Android 1.0)
Вы также можете переопределить dispatchKeyEvent()
(API Level 1, Android 1.0) следующим образом:
dispatchKeyEvent()
(Уровень API 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);
}
Отключить заднюю кнопку в Android
@Override
public void onBackPressed() {
return;
}
Попробуй это:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}