본문 바로가기

프로그래밍/Android

onBackPressed() deprecated 해결

작업 중에 마주한 onBackPressed() Deprecated..

 

 

알아보니 targetSDK 33부터 deprecated 되었고, 대체 방안으로 onBackPressedDispatcher를 사용하면 된다고 함

 

 

OnBackPressedDispatcher 사용법

1. callback 메서드 정의

2. onBackPressedDispatcher에 callback 추가

class mainActivity : AppCompatActivity(){

	private val callback = object : OnBackPressedCallback(true) {
    	    override fun handleOnBackPressed(){
    		//뒤로 가기 버튼 눌렀을 때 구현할 코드
        	Log.d(TAG, "뒤로 가기 클릭")
            }
	}
    
    override fun onCreate(savedInstanceState : Bundle?){
    	super.onCreate(savedInstance)
        setContentView(R.layout.main_activity)
        
        this.onBackPressedDispatcher.addCallback(this, callback)   
    }
}

 

fragment인 경우

class fragment : Fragment(){
	override fun onCreate(savedInstanceState : Bundle?){
    		super.onCreate(savedInstanceState)
        
        	val callback = requireActivity.onBackPressedDispatcher.addCallback(this){
        	//뒤로 가기 버튼 눌렀을 때 구현할 코드
            	Log.d(TAG, "뒤로 가기 클릭")
            	}
        }
}