액티비티는 화면을 구성하는 컴포넌트이다. 따라서 한 액티비티를 인텐트로 실행하면 화면이 전환된다. 이때 고려할 사항이 있다. 어떤 액티비티가 다른 액티비티를 실행해 화면이 전환되었을 때 의도에 따라 화면을 되돌리거나 되돌리지 않을 수도 있다.
startActivityResultForesult() -> 사용자가 뒤로가기 버튼을 누르지 않고 자동으로 화면을 되돌릴 때는 finish() 함수를 이용한다.
intent.putEXtra("data", 10)
setResult(RESULT_OK, intent)
finish()
요청을 제대로 처리했으면 RESULT_OK, 아니면 RESULT_CANCELED 등 상수로 지정한다.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
외부 앱에서 이미지 가져오기
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.type = "image/*"
startActivity(intent, 1000)
위 코드는 이미지를 intent를 통해 외부 앱(갤러리)에서 가져오려고 할 때 사용되는 코드이다.
여러 장의 이미지를 한 번에 가져오려고 할 때는 아래와 같이 코드를 작성할 수 있다.
val intent = Intent(Intent.ACTION_PICK)
intent.data = MediaStore.Images.Midea.EXTERNAL_CONTENT_URI
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
intent.action = Intent.ACTION_GET_CONTENT
startActivityForResult(intent, 1000)