sourcecode

Android에서 뒤로 단추 사용 안 함

codebag 2023. 8. 1. 20:30
반응형

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;
}

1.6까지의 안드로이드 api 레벨을 찾고 있는 경우.

@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..............
}

onBackPressed() 메서드를 재정의하고 onBackPressed 메서드의 슈퍼 클래스나 다른 클래스를 호출할 필요가 없습니다.

@Override
public void onBackPressed()
{

}

또는 현재 활동을 onBackPressed() 메서드로 전달합니다.

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

필요한 활동 이름을 내 활동으로 바꿉니다.

fragment를 사용하는 경우 먼저 callParentMethod() 메서드를 호출합니다.

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

그런 다음 빈 메소드를 호출합니다.

@Override
public void onBackPressed()
{

}

활동이 중지되기 전에 일부 서버에서 안드로이드 클라이언트 응용프로그램이 로그아웃되었는지 확인하려면 --> 자체 스레드에서 서비스를 사용하여 로그아웃해야 합니다(어쨌든 그렇게 해야 합니다).

뒤로 단추를 비활성화해도 문제가 해결되지 않습니다.예를 들어 사용자가 전화를 받을 때에도 동일한 문제가 발생합니다.전화 통화가 수신되면 네트워크에서 신뢰할 수 있는 응답을 받기 전에 활동이 중단될 가능성이 거의 높아집니다.

따라서 서비스가 네트워크의 응답을 위해 자체 스레드에서 대기하도록 한 다음, 성공하지 못할 경우 다시 시도하도록 해야 합니다.Android 서비스는 응답을 받기 전에 삭제될 가능성이 훨씬 낮을 뿐만 아니라 작업을 끝내기 전에 실제로 삭제될 경우 AlarmManager에 의해 언제든지 다시 시도할 수 있습니다.

Android에서 뒤로 단추 사용 안 함

@Override
public void onBackPressed() {
    return;
}

다음을 재정의할 수 있습니다.onBackPressed()메서드를 사용하여 수퍼 클래스에 대한 호출을 제거합니다.

@Override
public void onBackPressed() {
  //remove call to the super class
  //super.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
  ...
}

이 코드만 사용하면 됩니다.만약 당신이 역압축 비활성화를 원한다면, 당신은 super를 사용하지 않습니다.On Back Pressed();

@Override
public void onBackPressed() {

}

로그아웃하는 동안 앱을 비활성화하려면 취소할 수 없는 대화 상자를 표시할 수 있습니다.

위의 답변에서 이 두 가지 방법을 제외합니다.

OnBackPressed()(API 레벨 5, Android 2.0)

onKeyDown()(API 레벨 1, Android 1.0)

또한 다음을 재정의할 수도 있습니다.dispatchKeyEvent()(API 레벨 1, Android 1.0) 이와 같이,

dispatchKeyEvent() 1, 1API 벨레 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);
}

뒤로 단추에 대한 메서드를 재정의하면 됩니다.뒤로 버튼을 누를 때 아무 일도 일어나지 않도록 하려면 메소드를 비워둘 수 있습니다.아래 코드를 확인하십시오.

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

거한제를 합니다.super.onBackPressed()public void onBackPressed()효과가 좋습니다안드로이드 9에서 테스트됨

나는 그저 무시하는 것뿐입니다.onBackPressed()작동하지 않았지만 어떤 활동을 시작해야 하는지 명시적으로 알려줍니다.

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

사용해 보십시오.

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

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

안드로이드 13 코틀린

onBackPressedDispatcher.addCallback(object: OnBackPressedCallback(true) {
            /* override back pressing */
            override fun handleOnBackPressed() {
                //Your code here
            }
        })

언급URL : https://stackoverflow.com/questions/4779954/disable-back-button-in-android

반응형