android livedata 예제

avatar
| Uncategorized

LiveData 클래스와 함께 뷰모델을 사용하여 데이터를 저장한 경우 방향 변경 중에 활동의 새 인스턴스가 만들어지지만 데이터는 다시 다운로드되지 않습니다. 뷰모델은 사용 가능한 최신 데이터를 제공합니다. 이 예제에서는 이를 확인할 수 있습니다. 좋아, 그래서 코드를 통해 가자: 활동은 관리 하 고 UI 관련 데이터를 저장 하도록 설계 된 ProfileViewModel의 복사본을 검색 (또는 다른 클래스에 저장소를 위임). 이 ViewModel의 가장 큰 장점은 기본 클래스가 Android 아키텍처 구성 요소에 속한다는 점입니다. ProfileViewModel이 검색되면 활동이 데이터 변경 에 대한 관찰을 시작합니다. 이것은 LiveData의 마법이 시작되는 곳입니다. 뷰 모델은 관찰 가능한 클래스인 LiveData를 반환하므로 활동이 관찰자가 됩니다. 이벤트 기반 솔루션과 마찬가지로 데이터가 변경되면 그에 따라 UI가 변경됩니다. 이 예제에서 뷰 모델은 데이터 소유자인 FollowStatus를 둘러싸는 LiveData 인스턴스를 유지하는 UserRepository 클래스에서 반환 값을 가져옵니다. 저장소 메모리를 기반으로 하고 간결한 이유로 디스크가 지속되지 않았습니다. 사용자가 팔로우/팔로우 취소 단추를 클릭하면 코드는 뷰 모델의 toggleFollowing 메서드를 호출하여 사용자 Repository를 호출합니다.

리포지토리가 LiveData 인스턴스에 저장된 FollowStatus 값을 변경하면 활동이 FollowStatus를 관찰하고 데이터의 변경 내용을 기다리는 동안 활동의 onChanged 코드가 다시 호출됩니다. 데이터 변경 <-> UI 변경 주기가 LiveData에서 작동하는 방법입니다. 위의 GIF는 모두 내가 만든 예제 앱을 사용하여 만들어집니다. 당신은 내가 원격 서버에서 데이터를 얻기위한 개조 및 LiveData를 사용할 https://medium.com/androiddevelopers/viewmodels-persistence-onsaveinstancestate-restoring-ui-state-and-loaders-fc7cc4a6c090 아래에서 소스 코드를 얻을 수 있습니다 . 나머지 API 끝점은 이 https://androidwave.com/api/feed.json. 그리고 아래와 같은 JSON 데이터는 지금 당신이 보고 있는 단지 당신의 노트북을 열고 그것을 밖으로 시도. 또한 안드로이드 개발자를 살펴하는 것을 잊지 마세요. 다이빙을 할 수있는 흥미로운 것들이 있습니다.

LiveData의 새로운 점은 라이프사이클을 인식한다는 것입니다. 우리의 경우, 우리가 그것을 관찰 하기 시작 했을 때 우리가 그것을 준 인스턴스의 수명 주기를 인식, 활동의 수명 주기를 의미.