0. 최근에 종종 컨퍼런스를 다녀왔는데, 제대로 된 예제를 통해서 관중들에게 설명하는 발표자의 모습이 너무 멋있어 보였다.
그래서 블로그의 글을 잠시동안 안 쓰게 됐었는데, 다시 쓰는 이유는 내가 이해한 것을 정리하기 위해서 쓰려고 마음을 먹었기 때문이다.
입사도 안 한, 초보개발자의 생각정리장이다.
1. 안드로이드 lifecycle 아키텍쳐
- 일괄적으로 모든 액티비티에서 특정 lifecycle 이벤트 때, 특정 행동을 한다면 사용하기에 편이할 것이라고 생각을 했습니다.
- 예를 들면, Activity가 켜질 때마다 User의 정보를 가져온다고 했을 때, LifecycleObserver를 만들고 onCreate 이벤트를 받아와서 User의 정보를 확인한다.
= 해당 경우와 같은 코드를 구성할 때, 가장 잘 어울릴 것이라고 생각을 하는 라이브러리라고 생각합니다.
2. 제가 생각하는 Example Code
1. Observer 클래스
-해당 클래스를 통해서 각종 라이프사이클 때 할 행동을 작성합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | import android.arch.lifecycle.Lifecycle import android.arch.lifecycle.LifecycleObserver import android.arch.lifecycle.OnLifecycleEvent import android.content.Context import android.util.Log class MyObserver : LifecycleObserver{ //생성자를 통해서 lifecycle의 observer를 추가한다. constructor(context: Context, lifecycle:Lifecycle){ lifecycle.addObserver(this) } //onCreate 이벤트 @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) fun onCreate(){ Log.d("onStatus","onCreate"); } //onStart 이벤트 @OnLifecycleEvent(Lifecycle.Event.ON_START) fun onStart(){ Log.d("onStatus", "onStart") } //onResume 이벤트 @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) fun onResume(){ Log.d("onStatus","onResume"); } //onPause 이벤트 @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) fun onPause(){ Log.d("onStatus","onPause"); } //onStop 이벤트 @OnLifecycleEvent(Lifecycle.Event.ON_STOP) fun onStop(){ Log.d("onStatus","onStop"); } //onDestroy 이벤트 @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun onDestroy(){ Log.d("onStatus","onDestroy"); } } | cs |
2. Activity 클래스
- 액티비티에서는 Observer를 연결시킵니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import android.os.Bundle import android.support.v7.app.AppCompatActivity import hbs.com.studyandroidach.Observer.MyObserver import hbs.com.studyandroidach.R class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) MyObserver(this, lifecycle) } } | cs |
정상적으로 안드로이드 라이프사이클을 호출하고 있습니다.
'Android 공부' 카테고리의 다른 글
안드로이드 2way DataBinding (0) | 2018.12.11 |
---|---|
LiveData의 간단한 예제 (0) | 2018.11.30 |
안드로이드 유튜브 플레이어 예제 (0) | 2018.10.24 |
안드로이드 gitignore 예제 (0) | 2018.10.24 |
AAPT2 error: check logs for details 해결 방법 (0) | 2018.10.19 |