Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- activity
- sqlite
- room
- ViewModel
- View
- Behavior
- LiveData
- CollapsingToolbarLayout
- hilt
- Navigation
- CustomView
- 알림
- 알고리즘
- 코틀린
- DataBinding
- 안드로이드
- recyclerview
- BOJ
- onLayout
- kotlin
- onMeasure
- Android
- notification
- lifecycle
- Coroutine
- 백준
- Algorithm
- CoordinatorLayout
- AppBarLayout
- HTTP
Archives
- Today
- Total
개발일지
Android in A..Z - ActivityResultContract 본문
Activity 사이에서 결과를 받을 수 있는 startActivityResult, onActivityResult 등이 deprecated되면서 새로운 API인 ActivityResultContract가 생겼다.
사용법
registerForActivityResult를 통해 ActivityResultContract를 등록하고 callback 함수를 재정의한다.
=> 활성상태 (onResume가 호출되어 Activity가 보이는 상태)에서 등록할 시 Exception이 발생한다. onCreate로 선언하거나 변수로 선언하자.
private val activityResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
Log.d("PASS", it.toString())
if (it.resultCode == Activity.RESULT_OK) {
Toast.makeText(this, it.data!!.getStringExtra("data"), Toast.LENGTH_SHORT).show()
}
}
private val permissionRequest = registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) {
it.entries.forEach { entry ->
Log.d("PASS", "${entry.key} : ${entry.value}")
}
}
activityResult.launch(Intent(this, InputActivity::class.java))
permissionRequest.launch(
arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
)
)
ActivityResultLauncher의 launch로 실행한다. (각 ActivityResultLauncher마다 요구하는 매개변수가 다름)
Fragment에서도 사용법은 동일하다.
Git (예제코드)
https://github.com/KangTaeJong98/Example/tree/main/Android/ActivityResultContract
'Android (안드로이드)' 카테고리의 다른 글
Android in A..Z - Constraint Layout (0) | 2021.08.04 |
---|---|
Android in A..Z - OnTouchListener, GestureEvent (0) | 2021.07.18 |
Android in A..Z - DataStore (0) | 2021.03.30 |
Android in A..Z - Dialog (0) | 2021.03.22 |
Android in A..Z - QR Code (0) | 2021.03.16 |
Comments