API 레벨 호환성 고려하기
minSdkVersion 16
targetSdkVersion 30
위말은 30버전의 API로 개발을 하였지만 16버전 기에서도 오류가 발생하지 않고 동작한다는의미입니다.
그러므로 minSdk 설정값보다 상위 버전에서 제공하는 API를 사용한다면 호환성을 고려해야 됩니다.
안드로이드 API문서를 보다보면 Added in API level 숫자"이라고 써져있는것을 볼수있습니다. 여기서는 숫자이후에 나온 버전들의 경우 호완성문제가 발생하지 않습니다. 그렇지만 그숫자 이전 버전으로 실행시키경우 호완성 문제가 발생하게 됩니다. 이때 필요한것이 @RequiresApi 애너테이션이나 @TargetApi 애너테이션입니다.
@RequiresApi(Build.VERSION_CODES.R)
//@TargetApi (Build.VERSION_CODES.R)
fun showToast(){
//생략
toast.addCallback(
//생략
)
toast.show()
}
그렇지만 이러한 애너테이션의 경우 안드로이드 스튜디오에서 오류를 무시하는 설정일뿐이면 API 레벨 호환성 문제를 막으려면직접 코드로 처리하는 방법밖에 없습니다.
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){
toast.addCallback(
//생략
)
}