API 레벨 호환성

k_hyun·2023년 1월 29일
0

API 레벨 고려하기

안드로이드 문서 보면 makeText() 는 Added in API level 1 이라고 설명되어 있고, addCallback() 은 Added in API level 30 이라고 쓰여있다. API level 1 부터 지원되던 makeText() 는 아마도 왠만한 최신 버전에도 적용이 될 것이다.(아니면 더이상 추천되지 않거나) 하지만 API level 30부터 적용되는 addCallback() 은 그 이전 API level 에서는 거의 확실하게 작동하지 않을 것이다.

출처
https://velog.io/@tjeong/Android-API-%EB%A0%88%EB%B2%A8-%ED%98%B8%ED%99%98%EC%84%B1

minSdk가 21로 지정된 경우 addCallBack을 사용하면 문제가 발생할 수 있다.

annotation을 추가하여 해결

@RequiresApi(Build.VERSION_CODE.S)
fun test () {
	...
    addCallBack() 사용
    ...
}

==========================================

@TargetApi(Build.VERSION_CODE.S)
fun test() {
	...
	addCallBack() 사용
    ...
}

@RequiresApi, @TargetApi를 통해 오류를 무시할 수 있다.

앱이 실행될 때 API 레벨 호환성 문제를 막으려면 코드로 처리해 주어야 한다.

if (Build.VERSON.SDK_INT >= Build.VERSION_CODE.S) {
	...
    addCallBack() 사용
    ...
}

if 문을 통해 특정 버전에서만 실행하도록 작성할 수 있다.

0개의 댓글