오늘도 더 나은 코드를 작성하였습니까?

사용자가 정의한 LifecycleOwner 구현하기 본문

Android Jetpack Architecture/LifeCycle

사용자가 정의한 LifecycleOwner 구현하기

hik14 2020. 8. 13. 17:04

만약 LifecycleOwner를 직접 구현하려면 LifecycleRegistry 클래스를 사 용수 있다.

다음 코드 예에서와 같이 LifecycleRegistry 클래스에 이벤트를 전달해야 합니다.

 

 public class MyActivity extends Activity implements LifecycleOwner {
        private LifecycleRegistry lifecycleRegistry;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            lifecycleRegistry = new LifecycleRegistry(this);
            lifecycleRegistry.markState(Lifecycle.State.CREATED); // 이벤트 전달. 
        }

        @Override
        public void onStart() {
            super.onStart();
            lifecycleRegistry.markState(Lifecycle.State.STARTED); // 이벤트 전달. 
        }

        @NonNull
        @Override
        public Lifecycle getLifecycle() {
            return lifecycleRegistry; // 이벤트 전달. 
        }
    }