상세 컨텐츠

본문 제목

[Android] OnActivityResult, StartActivityForResult deprecated

모바일/Android - Kotlin

by 허허지니 2024. 2. 16. 20:45

본문

기존에 사용하던 StartActivityResult -> OnActivityResult 로 동작하던 콜백 메소드가 deprecated 됨

 

- 기존 소스

private fun takePhoto() {
	Intent(MediaStore.ACTION_IMAGE_CAPTURE).also{intent->
		intent.putExtra(MediaStore.EXTRA_OUTPUT, uri)
		intent.resolveActivity(activity?.packageManager!!)?.also{
			startActivityForResult(intent, REQUEST_IMAGE_CAPTURE) // OnActivityResult 실행
		}
	}
}

 

 

- 변경 소스

private val savePhoto = registerForActivityResult(ActivityResultContracts.TakePicture()){
	Log.d("save photo", "uri : $uri")
}

private fun takePhoto() {
    savePhoto.launch(uri)
}

 

 

ActivityResultContracts 참고

 - https://developer.android.com/reference/kotlin/androidx/activity/result/contract/ActivityResultContracts