일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- onLayout
- BOJ
- 코틀린
- 알고리즘
- Navigation
- LiveData
- 안드로이드
- recyclerview
- Algorithm
- CollapsingToolbarLayout
- hilt
- Behavior
- sqlite
- kotlin
- DataBinding
- CoordinatorLayout
- ViewModel
- room
- onMeasure
- View
- notification
- Android
- activity
- 백준
- HTTP
- Coroutine
- 알림
- CustomView
- AppBarLayout
- lifecycle
- Today
- Total
목록lifecycle (7)
개발일지
Activity와 Fragment가 생명주기를 갖는 것처럼 View도 생명주기를 갖는다. Constructor View(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0) context : 현재 테마와 리소스를 접근할 수 있도록 도와준다. 도한 동적으로 생성할 때 가장 간단한 방법이다. attrs : XML로 View를 Inflate할 때 XML로 속성을 받아오는 인터페이스다. defStyleAttr : 테마에서 기본 스타일을 지정할 수 있고, 기본 스타일에서 Attr값을 찾아와서 적용한다. defStyleRes : defStyleAttr에서 값을 찾을 수 없는 경우 defStyleRes를 사..
Fragment는 Activity에서 UI 일부를 나타냅니다. 하나의 Activity에서 여러 Fragment를 사용하여 UI를 구축할 수 있으며, 여러 Activity에서 Fragment가 재사용될 수 있습니다. Fragment는 Activity처럼 사용자에게 입력을 받고 생명주기를 가집니다. 즉 Activity를 모듈화한 것으로 생각하면 됩니다. Fragment의 생명주기는 Activity 생명주기에 영향을 받습니다. (Activity가 PAUSE 상태고 들어가면 Fragment도 PAUSE 상태로 들어가고, Activity가 DESTROY되면 Fragment도 DESTROY됩니다.) Fragment는 FragmentManager로 관리되며 FragmentManager를 좀 더 간편하게 사용하기 위해..
Android는 View와 ViewGroup을 통해 UI를 구축하여 사용자와 상호작용할 수 있다. 기본적으로 Button, TextView 등의 View와 ConstraintLayout, LinearLayout 등의 ViewGroup을 제공하기 때문에 쉽게 앱을 제작할 수 있다. 하지만 기본적으로 제공하는 View와 ViewGroup으로 원하는 UI를 구축할 수 없는 경우가 있으며, 이런 경우 View와 ViewGroup을 상속받아 직접 구현할 수 있고 기존의 정의된 View를 상속받아 기능을 확장할 수 있다. View Method View에서 제공하는 Method를 재정의하면서 View를 Custom화 할 수 있다. 구분 함수 설명 생성 constructor(Context) 코드에서 View를 생성할 ..
ViewModelScope ViewModel마다 존재하는 Scope이다. ViewModel이 삭제되면 자동으로 취소된다. class ExampleViewModel : ViewModel() { init { viewModelScope.launch { /* ViewModel이 사라지면 종료된다. */ } } } LifeCycleScope LifeCycle 객체마다 존재하는 Scope이다. Create, Start, Resume 3가지의 Mode를 지원하고 Active상태(화면에 보이는 상태)일 때만 수행된다. class CoroutineFragment : BaseFragment(R.layout.fragment_coroutine) { private var count = 0 private val logList b..
Hilt Component 삽입을 실행할 때 @InstallIn 주석을 사용하여 참조할 수 있는 구성요소를 설정하고 구성요소에 맞는 대상에서만 삽입할 수 있다. Hilt Component 인젝터 대상 ApplicationComponent Application ActivityRetainedComponent ViewModel ActivityComponent Activity FragmentComponent Fragment ViewComponent View ViewWithFragmentComponent @WithFragmentBindings 주석이 지정된 View ServiceComponent Service Hilt Component Lifetimes Hilt는 Hilt Component별 Android Cla..
ViewModel Android Jetpack의 구성요소이며 UI관련 데이터를 관리하도록 설계되었습니다. UI관련 Data를 Activity, Fragment와 분리시켜 관리하면서 많은 이점을 얻을 수 있습니다. 장점 Android에서 Activity와 Fragment의 수명주기를 관리하기 때문에 Android에서 UI 컨트롤러를 제거하거나 다시 만드는 경우 데이터가 삭제되지만 ViewModel은 독립된 수명주기를 가지기 떼문에 데이터를 유지할 수 있습니다. UI관련 Data를 비동기적인 호출로 받아올 때 메모리 누수를 신경쓰거나, 비동기 호출을 관리하는 코드가 필요하거나 UI 컨트롤러가 변경될 경우 이미 호출한 코드를 다시 호출해야하는 경우가 생길 수 있지만 ViewModel을 재사용하면서 이러한 불편..
onCreate 이 콜백은 시스템이 먼저 활동을 생성할 때 실행되는 것으로, 필수적으로 구현해야 합니다. 활동이 생성되면 생성됨 상태가 됩니다. onCreate() 메서드에서 활동의 전체 수명 주기 동안 한 번만 발생해야 하는 기본 애플리케이션 시작 로직을 실행합니다. 예를 들어 onCreate()를 구현하면 데이터를 목록에 바인딩하고, 활동을 ViewModel과 연결하고, 일부 클래스 범위 변수를 인스턴스화할 수도 있습니다. 이 메서드는 savedInstanceState 매개변수를 수신하는데, 이는 활동의 이전 저장 상태가 포함된 Bundle 객체입니다. 이번에 처음 생성된 활동인 경우 Bundle 객체의 값은 null입니다. Activity가 생성될 때 실행된다. Lifecycle에서 한번밖에 실행되..