post-custom-banner

💌 [Android/Kotlin] 'getSerializableExtra(string!): Serializable?' is deprecated. Deprecated in Java

'getSerializableExtra(string!): Serializable?' is deprecated. Deprecated in Java

업로드중..

📌 Android API 33 이후 getSerializable()이 deprecated 되었다고한다.

  • 기존
model = intent.getSerializableExtra("data") as T?
  • API 33 이후
model = intent.getSerializableExtra("data",T::class.java)
  • 다음과 같이 분기 필요
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
   model = intent.getSerializableExtra("data",T::class.java)
} else {
   model = intent.getSerializableExtra("data") as T?
}

💙 다음과 같이 확장함수를 만들어주면 편리하다.

// API 33 이후 getSerializable()가 deprecated 되어서 만든 확장함수
fun <T: Serializable> Intent.intentSerializable(key: String, clazz: Class<T>): T? {
	return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
		this.getSerializableExtra(key, clazz)
	} else {
		this.getSerializableExtra(key) as T?
	}
}
model = intent.intentSerializable("data", Model::class.java)
profile
Android Developer..+ iOS 슬쩍 🌱 ✏️끄적끄적,,개인 기록용 👩🏻‍💻
post-custom-banner

2개의 댓글

comment-user-thumbnail
2023년 12월 12일

확장함수 부분 유용하네요. 글 잘보고 갑니다.

답글 달기
comment-user-thumbnail
2023년 12월 18일

확장함수 팁까지.. 감사합니다

답글 달기