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
- apk이름변경
- TwomonUSB
- mutable
- compse state
- 토글 험수
- var 와 val
- livedata
- withContext
- json 저장
- 코틀린 이미지저장 #파일저장
- 라이브데이터 postValue
- 코틀린 트리거 버튼
- TowmonUSB 연결오류
- 안드로이드 스튜디오 애뮬레이터
- compse collectAsState
- Room 데이터베이스 업데이트
- 데이터바인딩
- #큐구조 #큐다운로드
Archives
- Today
- Total
EnjoyLife
remember 와 rememberSaveable 의 차이 본문
1.remember 은 @Composable로 선언한 함수내에서 데이터가 유지되고,회전시에는 데이터 초기화
2.rememberSaveable는 @Composable로 선언한 함수뿐만 아니라 화면 회전시에도 데이터 유지
아래코드는 count 변수를 rememberSaveable 선언해 카운트 증가버튼을 눌러 숫자가 증가한후 회전해도
숫자가 초기화가 되지 않는다.하지만 rember를 사용하면 회전시 초기화가 된다.
@Composable
fun StateExample() {
val viewModel: MyViewModel = viewModel()
val count by rememberSaveable { mutableStateOf(0) }
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(text = "Count: $count", style = MaterialTheme.typography.h3)
Button(onClick = { count++ }) {
Text(text = "Increment")
}
}
}
@Composable
fun MyViewModel() {
val state by remember { mutableStateOf(0) }
}
의문이 든다 무조건 " rememberSaveable " 쓰면 되는거 아닌가?
[단점]
1.메모리 사용량: 회전해도 값이 유지된다는건 ,메모리상에 데이터를 가지고 있는다는게 된다.
유지하는 데이터가 많으면 앱의 메모리 사용량이 늘어난다.
2.캐시관리: 특정조건에서 캐시된 데이터가 관리되지 않을수 있다.
화면 회전을 하지 않고 세로화면 일경우 무조건 remember , 너무 많은 데이터를 유지해야 하는경우도
remember가 낫지 않을까 생각한다.
'안드로이드 개발 > 개발팁' 카테고리의 다른 글
함수의 마지막 인자로 람다를 쓰는 이유 (0) | 2023.11.01 |
---|---|
안드로이드스튜디오 애뮬레이터 죽어도 실행안될때 (2) | 2023.10.30 |
루팅단말기일 경우 실행 차단 (0) | 2023.10.30 |
MediaBrowserService 와 MediaSessionCompat 을 이용해서 exoplayer 만들기 (0) | 2023.10.26 |
companion object 싱글턴과 커스텀 싱글턴의 차이 (0) | 2023.10.24 |