코인 카지노 사이트는데이터가 변경되면 알림을 받을 수 있는DataHolder 클래스이다. (DataHolder 클래스는 어떤 동작은 거의 또는 전혀 하지 않고 데이터만 가지는 클래스이다.)
알림 받는 것을 관찰한다고 표현하며 관찰 가능한 객체나 데이터를 나타내는 클래스는 코인 카지노 사이트able 클래스이다. 그리고 코인 카지노 사이트able 객체에 변경이 발생하는 것을 알려주고 싶을 때 사용되는 것이 코인 카지노 사이트 인터페이스이다.
코인 카지노 사이트는 기본적으로 Observerable 클래스와 같이 동작한다. 중요한 차이점은 생명주기를 인식한다는 것이다. 어떻게 인식을 할까? Activity와 Fragment에는 LifecycleOwner 인터페이스가 기본적으로 구현되어 있다. LifecycleOwner는 getLifecycle() 메서드를 통해서 Lifecycle이라는 객체를 가져온다.
코인 카지노 사이트는LifecycleOwner가 구현된 객체(Activity나 Fragment)와 연결되는 Observer를 등록할 수 있다. 따라서 Observer가생명주기를 인식할 수 있다.
- 데이터가 변경될 때마다 코인 카지노 사이트를 통해서 콜백을 받기 때문에 코인 카지노 사이트에서 변경된 데이터로 UI를 업데이트하도록 구현하면 별도로 UI 업데이트에 대한 신경을 쓰지 않아도 된다.
2) 메모리 누수 없음
- 코인 카지노 사이트가 LifecycleOwner가 구현된 객체와 연결되어 있기 때문에 해당 객체의 생명주기가 destroy 되면 코인 카지노 사이트도 메모리 해제된다.
3) 비활성 Activity에 의한 충돌 없음
- Observer의 생명주기가 비활성 상태일 때 코인 카지노 사이트의 어떤 이벤트도 수신하지 않는다.
4) 별도의 생명주기 관리 불필요
- 코인 카지노 사이트는 Observer를 통해서 생명주기의 상태 변경을 알고 있기 때문에 생명주기에 대해서 자동으로 관리한다.
5) 항상 최신 데이터 유지
- 생명주기가 비활성에서 활성으로 바뀌는 경우에 최신 데이터를 수신한다. 예를 들면 Activity가 백그라운드에 있다가 포그라운드로 오는 경우 또는 화면 회전으로 Activity가 다시 생성되는 경우에 최신 데이터를 받는다.
6) 리소스 공유
-코인 카지노 사이트가 생명주기를 인식하기 때문에 여러 Activity, Fragment, Service에 코인 카지노 사이트를 공유할 수 있다. (앞의 3, 4 특징 덕을 보는 것이다.) 방법은 코인 카지노 사이트를 상속하여 커스텀 코인 카지노 사이트를 만들어서 사용할 Activity, Fragment, Service에 연결하면 된다.
간단한 예제
다음은 버튼을 눌렀을 때 코인 카지노 사이트의 값을 변경하여 이를 Observer가 알림을 받고 변경된 값을 버튼의 텍스트에 적용하는 간단한 예제이다. Mutable코인 카지노 사이트는 값(value) 변경이 가능한 코인 카지노 사이트이다.
앞의 코인 카지노 사이트 동작 구성도를 참고하여 아래 부분의 코드를 자세히 보면 버튼을 클릭했을 때 코인 카지노 사이트 값 변경이 발생한다. 활성 상태의 Activity이므로 변경사항은 Observer에 전달된다. Observer는 변경사항을 수신해서 변경된 데이터로 UI를 갱신한다.
기본적인 사용법은 간단하다. 코인 카지노 사이트 객체와 Observer 객체를 만든다. 그리고코인 카지노 사이트 객체에Observer 객체를 연결하기 위해 코인 카지노 사이트의observer 함수에 첫 번째 인자로LifecycleOwner을 가진 현재 Activity를 넘겨주고 두 번째 인자로 앞서 만든 Observer 객체를 넘겨준다. 그러면 해당 Activity가 활성화된 상태에서 코인 카지노 사이트의 값에 변경이 발생하면 이를 관찰하고 있던 Observer 객체가 알림을 받는다.