Yêu cầu Apr 5th, 2022 3:31 p.m. 181 0 2
  • 181 0 2
0

Android: Vì sao Viewmodel không được gọi thông qua constructor mà lại dùng ViewModelProvider

Chia sẻ
  • 181 0 2

Chào mọi người, mình đang học kotlin và có một vài chỗ thắc mắc mong được mọi người giúp đỡ. Trong android vì sao viewmodel lại được gọi trong activity thông qua ViewModelProvider hoặc ViewModelProviders.Factory mà không dùng trực tiếp constructor vậy ? Ví dụ nếu mình gọi mViewModel = new ViewModelProvider(context).get(CustomViewModel.class); thì có gì khác với gọi mViewModel = new CustomViewModel(context); không ? Cảm ơn mọi người rất nhiều

2 CÂU TRẢ LỜI


Đã trả lời Apr 7th, 2022 8:49 a.m.
Đã được chấp nhận
+1

Nếu bạn sử dụng ViewModelProvider thì khi Activity finish sẽ callback mViewModel.onCleared()
Nếu bạn tạo ViewModel bằng constructor nó sẽ không callback mViewModel.onCleared() để giải phóng tài nguyên

Chia sẻ
Đã trả lời Apr 13th, 2022 4:23 a.m.
+1

Cũng giống như state, muốn thay đổi state thì phải update bằng hàm setState chứ không update state = value trực tiếp được.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí