어제 데이터베이스에서는 값이 삭제되었는데 화면에서는 여전히 남아있는 문제를 해결하지 못 하였다.
이번에는 이를 해결해보려고 한다.
Lifecycle이 destroy되기 전에는 이전에 받아놨던 데이터베이스 데이터를 그대로 가져오는 것이 문제되었기 때문에, 그렇다면 데이터베이스의 데이터를 딱 한 번만 받아오도록 수정하였다.
var justOneTime = mutableStateOf(true)
mutableState의 Boolean 값을 하나 생성하였다.
viewModel.stockNameList.observe(LocalLifecycleOwner.current) {
if (viewModel.justOneTime.value){
companyList.addAll(it)
Log.d("company", "$it")
viewModel.justOneTime.value = false
}
}
viewModel의 값이 true일 때만 값을 업데이트 하도록 하였다.
이렇게 하니 문제가 되었던 navigationBar를 이동하였을 때, 데이터 값이 다시 생성되는 부분을 해결할 수 있었다.
viewModel이 destroy되면 다시 새로운 데이터베이스 데이터를 제대로 받아오기 때문에 문제가 되지 않았다.